我一直在学习芹菜,但未能找到概念性问题的答案,并且尝试了奇怪的结果.
当有计划任务(按计划,我不是指定期但计划将来使用eta = x运行)提交给Celery时,他们似乎是立即被队员从队列中消耗掉(而不是留在Redis默认芹菜键/队列).据推测,工人实际上将执行eta的任务.
如果该工作人员被关闭或重新启动(例如更新其已注册的任务)会发生什么?那些预定的任务会丢失吗?他们没有"跑步",所以热情的终止不会等他们当然完成.
有没有办法强制这些任务返回队列并被下一个可用的工作者使用?
我想,手动,可以在关闭工作人员之前转储任务:
http://celery.readthedocs.org/en/latest/userguide/workers.html#inspecting-workers
当一个新工人回来时重新提交他们......但这应该是自动发生的吗?
真的很感激任何帮助
谢谢
小智 4
看看 acks_late http://celery.readthedocs.org/en/latest/reference/celery.app.task.html#celery.app.task.Task.acks_late
如果设置为 true,Celery 会将任务保留在队列中,直到成功执行为止。