Celery 芹菜任务在礼貌的工作人员重新启动后会以不一致的状态结束

Celery 芹菜任务在礼貌的工作人员重新启动后会以不一致的状态结束,celery,django-celery,Celery,Django Celery,我的服务器上有芹菜服务。我用芹菜多点启动…开始,用芹菜多点停止等待…停止。这很好,当调用stopwait时,它会等待所有工作人员完成任务,然后退出 我使用-E标志调用start和stopwait,并使用django\u芹菜\u监视器来监视任务: celery events -A myapp --camera django_celery_monitor.camera.Camera --frequency=2.0 这也有效,我将事件状态记录到数据库中,并且任务被正确更新 但是,当我使用stopwa

我的服务器上有芹菜服务。我用芹菜多点启动…开始,用芹菜多点停止等待…停止。这很好,当调用stopwait时,它会等待所有工作人员完成任务,然后退出

我使用
-E
标志调用
start
stopwait
,并使用
django\u芹菜\u监视器
来监视任务:

celery events -A myapp --camera django_celery_monitor.camera.Camera --frequency=2.0
这也有效,我将事件状态记录到数据库中,并且任务被正确更新

但是,当我使用
stopwait
停止工作人员时,就会出现问题。如果某个任务正在运行,则该任务将永远保持在
STARTED
状态,即使它已完成,我猜这是因为该事件已发出,但由于工作进程随后立即关闭,它将丢失。更新后的状态从未收到,我不能自己简单地覆盖它们,因为Camera类在运行时会将不正确的状态写回顶部

我甚至尝试过使用回调而不是提供的Camera类进行实时处理。在工作进程终止之前,仍然没有从最终任务接收到成功任务事件

我怎样才能避开这个问题?我的后端是RabbitMQ。芹菜的版本是4.1.0