几天后,我的芹菜服务将无限期地重复执行一个任务。这有点难以复现,但根据处理的任务量,每周或更频繁地发生。
这里是任务源代码和Celery服务配置文件。
为什么在服务运行一段时间后,任务会被多次接收?我该如何获得一致的行为?
我将感激任何关于如何获取有关此问题的更多数据的提示,因为我不知道如何追踪它。当它发生时,重新启动芹菜将暂时解决它。
我有一个运行4个工作进程的芹菜节点(版本3.1.23)。代理和结果后端都在Redis上。我只发布到一个队列,并且我不使用芹菜节拍。
Django's setting.py中的配置是:
BROKER_URL = 'redis://localhost:6380'
CELERY_RESULT_BACKEND = 'redis://localhost:6380'
日志的相关部分:
[2016-05-28 10:37:21,957: INFO/MainProcess] Received task: painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647]
[2016-05-28 11:37:58,005: INFO/MainProcess] Received task: painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647]
[2016-05-28 13:37:59,147: INFO/MainProcess] Received task: painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647]
...
[2016-05-30 09:27:47,136: INFO/MainProcess] Task painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647] succeeded in 53.33468166703824s: None
[2016-05-30 09:43:08,317: INFO/MainProcess] Task painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647] succeeded in 466.0324719119817s: None
[2016-05-30 09:57:25,550: INFO/MainProcess] Task painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647] succeeded in 642.7634702899959s: None
任务是通过用户请求发送的:
tasks.indicar_cliente.delay(indicacao_db.id)
这里是任务源代码和Celery服务配置文件。
为什么在服务运行一段时间后,任务会被多次接收?我该如何获得一致的行为?