我是 djcelery 开发的新手。我想通过 Web 界面上的按钮关闭工作人员。因此,当在 tasks.py 中单击按钮时,我将调用以下任务:
result = broadcast('shutdown', destination=[worker.hostname])
我注意到如果工作人员作为一个活动任务,它不会立即关闭,它会在任务执行完成后关闭。但是,任务状态始终为“已启动”。如果我重新启动worker,任务将再次被拾取并执行。反正我可以更新任务状态,因为它已经被执行了吗?我确实将 CELERY_ACKS_LATE 设置为 True。
更新:我使用的 celery 版本是 3.0.9(Chiastic Slide),我使用 Rabbitmq 作为代理。