问题标签 [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.

0 投票
1 回答
827 浏览

celery - 芹菜工人多次接收具有相同 ID 的任务

我有一个 django 芹菜项目。我看到一些工作人员多次收到具有相同 ID 的任务的问题。这是日志的片段:

请参阅 id 70d6a7d3-3cb4-4e01-8d04-4d084e36bdfb 在第 9239、9243 行重复,并在第 9246 和 9250 行执行。

这些任务在 django 管理页面中显示为问号???

我正在使用(我知道这些是旧版本):

这就是我启动工人和 celerybeat 的方式:

打开/关闭此设置没有帮助:

我在这里看到了这个问题,但还没有看到最终的解决方案。

我也看过这个,但它也没有决定性的解决方案,我想给出我的确切背景。

任何帮助,将不胜感激。

0 投票
0 回答
60 浏览

django - 芹菜调度程序不允许任务运行

这是我的 settings.py 的摘录

任务运行时send_mail,其他任务无法运行(被忽略,从 celeryd 日志中可以看出未交付)

但是如果我在这 30 秒的时间间隔内执行另一个任务,那么它实际上会运行。

send_mail任务

send_mail是来自mailer包的命令。

Celeryd 执行如下

0 投票
2 回答
3334 浏览

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

男孩,这是很多文件。我想我已经正确设置了它们:

我的settings.py文件中有所有与芹菜相关的设置,如下所示:

然而,当我开始使用 celery 时sudo service celeryd start,它不起作用。相反,很明显它没有从我的 Django 项目中获取我的设置,因为它说:

有什么想法可以让吊索不起作用?我错过了什么重要的东西吗?

0 投票
1 回答
488 浏览

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

给我一个错误的工作示例:

0 投票
1 回答
85 浏览

celery - 调用不同的任务时,Celery 配置会更新

我有多个任务作为使用 RabbitMQ 代理的不同 django 应用程序。这是使用标准 django 配置设置的,并且运行良好。我正在使用组、链并从不同的模块调用它们。

作为标准做法,我有:

芹菜.py:

在项目/初始化.py 中:

所有任务都继承自 celery.Task 并覆盖了 run()。

现在我需要在不同的 RabbitMQ 代理上调用不同的任务。

所以这就是我必须调用不同任务的地方:

现在打电话:

完成此操作后,当我调用以前的任务时,它们会被路由到这个新代理。在我注释掉这段代码的那一刻,一切都恢复正常了。

当我检查 celery_app(如上所述)conf 时,代理 url 是正确的。但是当我检查任何以前的任务->应用程序->conf->代理 url 时,它会更新为新的代理。如何解决这个问题?

0 投票
0 回答
280 浏览

python - 将 django-celery 作为守护进程运行时出现操作系统错误

我需要将 celery 作为守护进程运行。我没有为此使用主管。相反,我想在系统启动时使用 init 运行 celery。

这是我在启动芹菜时遇到的错误的回溯sudo /etc/init.d/celeryd start

/var/www/html/hello 是我的根 django 应用程序的路径

我正在关注这里的教程。

我浏览了有关 stackoverflow 等的几个答案,发现这可能是权限问题。但后来我创建了一个新组和一个用户,并将这个组分配给整个 django root 应用程序。问题依然存在。

我一直坚持这一点。谁能告诉我如何解决这个问题?

0 投票
1 回答
1580 浏览

python - 芹菜守护进程的多个队列

我有一个由芹菜服务器和工作人员组成的网络,它们将用于即将到来的大量 I/O 任务。有两个队列,defaultbacklog,每台服务器有五个工作人员。所有服务器都使用类似于init 脚本配置文档的配置进行守护。

我想为一台服务器做的是让三个工作人员defaultbacklog. 是否可以使用守护程序配置来做到这一点?

0 投票
1 回答
3897 浏览

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?

0 投票
0 回答
143 浏览

python-3.x - 带有 Celery 守护进程的 Django REST,没有名为“proj”的模块

我正在尝试设置一个celery守护程序以使用 Django REST 服务器在服务器启动时运行(还应注意,我是在 Vagrant VM 中完成这一切的)。我已经在线学习了几个教程(包括 Celery 提供的教程),但仍然无法使其正常工作。

配置:

proj/proj/celery.py

proj/proj/__init__.py

在我的引导日志中,我收到此错误:

尽管一切都与 Celery 文档似乎想要的完全一样,但我似乎无法克服这个错误。有什么帮助吗?

0 投票
1 回答
178 浏览

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 作为参数传递?