crontab 不能与 celery 多启动一起使用

Posted

技术标签:

【中文标题】crontab 不能与 celery 多启动一起使用【英文标题】:crontab not working with celery multi start 【发布时间】:2014-06-13 10:50:39 【问题描述】:

我现在正在尝试让 Celery 工作一段时间。当我同步测试时,我所有的 crontab 都可以正常工作

sudo celery -A testdjango worker --loglevel=DEBUG --beat

但是当我这样做时

celery multi start -A testdjango w1 -l info

我的 crontab 都不起作用。我不知道为什么

注意:我尝试了其他计划间隔,就像 time delta 一样,同样的事情也会发生。

所以我相当肯定这不是 crontab 的事情,而是与我开始 celery multi 的方式有关。

此外,worker 开启得很好,因为我可以在 Celery Flower 中看到它,但没有执行任何任务。

【问题讨论】:

您的日志文件是什么样的?问题可能存储在那里。如果您没有,您可以使用“mkdir -p /var/log/celery”创建文件夹,然后使用以下参数“--logfile=/var/log/celery/%n.pid”调用 c​​elery multi start " 【参考方案1】:

所以,答案很简单

由于周期性任务需要Beat,只需在命令中添加--beat即可。

类似的东西

celery multi start -A testdjango w1 --beat -l info

【讨论】:

我一直在寻找这个论点......你去吧,整个网络上唯一的答案! @holms 是的,我也花了一段时间 也许你知道,如何用队列指定几个工人(按名称)? 如果我有多个队列,这将为每个队列重复任务【参考方案2】:

或者,您可以在后台专门运行它,而不是在您的工作进程中运行 Beat(不推荐 3.1.18 的文档说)

celery beat -A testdjango --pidfile=/blah/beat.pid --detach

请务必将 pidfile 保存在某处,以便您以后也可以终止该进程。

【讨论】:

以上是关于crontab 不能与 celery 多启动一起使用的主要内容,如果未能解决你的问题,请参考以下文章

bundle exec 不能与 crontab 一起使用

为啥 CeleryCAM 不能与 Amazon SQS 一起使用?

Celery实现定时任务crontab

Celery配置

django + celery - 如何在我的 django 应用程序中为 celery 设置 crontab 计划?

为啥使用 Celery 运行计划任务比使用 crontab 更可取?