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”调用 celery 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 多启动一起使用的主要内容,如果未能解决你的问题,请参考以下文章
为啥 CeleryCAM 不能与 Amazon SQS 一起使用?