问题标签 [celeryd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 芹菜调度程序不允许任务运行
这是我的 settings.py 的摘录
任务运行时send_mail
,其他任务无法运行(被忽略,从 celeryd 日志中可以看出未交付)
但是如果我在这 30 秒的时间间隔内执行另一个任务,那么它实际上会运行。
send_mail
任务
send_mail
是来自mailer
包的命令。
Celeryd 执行如下
django - 如何使用 Django 配置 Celery 守护进程
据我所知,有两份文件描述了如何设置 celery。有“将工作人员作为守护进程运行”和“使用 Django 的第一步”。
在 Django 文档中,它说:
我们还将 Django 设置模块添加为 Celery 的配置源。这意味着您不必使用多个配置文件,而是直接从 Django 设置中配置 Celery。
听起来很棒。但是,据我所知,这些是完整的 Celery 守护进程所需的文件:
/etc/init.d/celeryd
/etc/defaults/celery
/my-proj/celery.py
/my-proj/__init__.py
并且可能:
/my-proj/settings.py
男孩,这是很多文件。我想我已经正确设置了它们:
/etc/init.d/celeryd
具有celery 提供的默认 init.d 脚本。
/li>/etc/defaults/celery
几乎什么都没有。只是指向我的应用程序的指针:
/li>/my-proj/celery.py
具有Django 的第一步中的推荐文件:
/li>/my-proj/__init__.py
具有Django 的第一步中的推荐代码:
我的settings.py
文件中有所有与芹菜相关的设置,如下所示:
然而,当我开始使用 celery 时sudo service celeryd start
,它不起作用。相反,很明显它没有从我的 Django 项目中获取我的设置,因为它说:
有什么想法可以让吊索不起作用?我错过了什么重要的东西吗?
python - 芹菜工人作为守护进程运行时无法完成工作
我有一个带有 django 和 redis 的芹菜设置。当我通过用户命令运行 celery 时,例如celery multi start 123_work -A 123 --pidfile="/var/log/celery/%n.pid" --logfile="/var/log/celery/%n.log " --workdir="/data/ports/dj_dois" --loglevel=INFO工作很好,但是如果我通过celeryd或主管运行 celery,一些工作会给我一个错误:
我的芹菜版本:
蟒蛇 - 3.4
姜戈 - 1.8.7
Redis 服务器 v=2.8.17
给我一个错误的工作示例:
celery - 调用不同的任务时,Celery 配置会更新
我有多个任务作为使用 RabbitMQ 代理的不同 django 应用程序。这是使用标准 django 配置设置的,并且运行良好。我正在使用组、链并从不同的模块调用它们。
作为标准做法,我有:
芹菜.py:
在项目/初始化.py 中:
所有任务都继承自 celery.Task 并覆盖了 run()。
现在我需要在不同的 RabbitMQ 代理上调用不同的任务。
所以这就是我必须调用不同任务的地方:
现在打电话:
完成此操作后,当我调用以前的任务时,它们会被路由到这个新代理。在我注释掉这段代码的那一刻,一切都恢复正常了。
当我检查 celery_app(如上所述)conf 时,代理 url 是正确的。但是当我检查任何以前的任务->应用程序->conf->代理 url 时,它会更新为新的代理。如何解决这个问题?
python - 将 django-celery 作为守护进程运行时出现操作系统错误
我需要将 celery 作为守护进程运行。我没有为此使用主管。相反,我想在系统启动时使用 init 运行 celery。
这是我在启动芹菜时遇到的错误的回溯sudo /etc/init.d/celeryd start
/var/www/html/hello
是我的根 django 应用程序的路径
我正在关注这里的教程。
我浏览了有关 stackoverflow 等的几个答案,发现这可能是权限问题。但后来我创建了一个新组和一个用户,并将这个组分配给整个 django root 应用程序。问题依然存在。
我一直坚持这一点。谁能告诉我如何解决这个问题?
python - 芹菜守护进程的多个队列
我有一个由芹菜服务器和工作人员组成的网络,它们将用于即将到来的大量 I/O 任务。有两个队列,default
和backlog
,每台服务器有五个工作人员。所有服务器都使用类似于init 脚本配置文档的配置进行守护。
我想为一台服务器做的是让三个工作人员default
为backlog
. 是否可以使用守护程序配置来做到这一点?
python - 带有supervisord的Celeryd multi
尝试使用 celery multi 运行 supervisord (3.2.2)。
似乎是supervisord无法处理它。单身芹菜工人工作正常。
这是我的主管配置
celeryd.conf
我使用以下 supervisord 变量来模拟我启动 celery 的方式:
- %(program_name)s
- %(process_num)d
- @
- %(host_node_name)s
监督者
我尝试在 / 中更改此值usr/local/lib/python2.7/dist-packages/supervisor/options.py from 0 to 1:
我仍然得到:
Celery 正在启动,但 supervisord 没有跟踪它。
root@parzee-dev-app-sfo1:/etc/supervisor#
芹菜.sh
类似: Running celeryd_multi with supervisor How to use Supervisor + Django + Celery with multiple Queues and Workers?
python-3.x - 带有 Celery 守护进程的 Django REST,没有名为“proj”的模块
我正在尝试设置一个celery
守护程序以使用 Django REST 服务器在服务器启动时运行(还应注意,我是在 Vagrant VM 中完成这一切的)。我已经在线学习了几个教程(包括 Celery 提供的教程),但仍然无法使其正常工作。
配置:
proj/proj/celery.py
:
proj/proj/__init__.py
:
在我的引导日志中,我收到此错误:
尽管一切都与 Celery 文档似乎想要的完全一样,但我似乎无法克服这个错误。有什么帮助吗?
python - Celeryd 忽略 /etc/default/celeryd 中的 BROKER_URL
概括
- 我通过 celeryd 将 Celery 作为守护进程运行(按照说明)
- 在配置文件/etc/default/celeryd BROKER_URL="redis://localhost:6379/0" 中指定redis作为broker
- Worker 日志文件表明 BROKER_URL 被忽略,因为它仍在尝试连接到默认代理。
ERROR/MainProcess] 消费者:无法连接到 amqp://guest:**@localhost:5672//:打开套接字时出错:发生套接字错误。
问:我是否需要修改在线说明中提供的基本模板之外的 /etc/init.d/celeryd 文件,以便将 BROKER_URL 作为参数传递?