【发布时间】:2015-04-21 07:42:17
【问题描述】:
我一直在学习芹菜,但无法找到概念性问题的答案,并且在实验中得到了奇怪的结果。
当有计划任务(通过计划,我不是指定期,而是计划在将来使用 eta=x 运行)提交给 Celery 时,它们似乎立即被工作人员从队列中消耗(而不是留在 Redis 默认的 celery 键/队列中)。据推测,worker 将在 eta 处实际执行任务。
如果该工作人员被关闭或重新启动(例如更新它的注册任务)会发生什么?那些计划任务会丢失吗?它们没有“运行”,因此热终止当然不会等待它们完成。
有没有办法强制这些任务返回队列并由下一个可用的工作人员使用?
我想,手动地,可以在关闭工人之前转储任务:
http://celery.readthedocs.org/en/latest/userguide/workers.html#inspecting-workers
并在新工作人员备份时重新提交...但这应该自动发生吗?
非常感谢您对此的任何帮助
谢谢
【问题讨论】: