我有一个芹菜的问题:从某一点(芹菜工作日志不显示根本原因),所有任务(由celerybeat每5分钟调度)都被工人撤销和丢弃。
celerybeat和celeryd(工人)的日志中没有任何线索可以说明为什么会发生这种情况。我注意到,从某一点开始,每50个任务中就有1个被撤销,被撤销任务的频率一直在上升,直到24小时后所有任务都被系统地撤销。
我正在使用Redis作为代理,问题发生在Linux部署的芹菜。
你知道这个问题的原因是什么吗?如果你需要更多的信息,不要犹豫,问!
在查看日志中的任务uid后,我弄清楚了发生了什么:
[2015-10-27 05:27:45,879: INFO/MainProcess] Received task: hidden_task_name[29e47148-8865-4d46-a7ef-f8a0d625fe05] expires:[2015-10-27 05:57:45.870869+00:00]
[2015-10-27 06:28:23,696: INFO/MainProcess] Discarding revoked task: hidden_task_name[29e47148-8865-4d46-a7ef-f8a0d625fe05]
任务被丢弃,因为我使用CELERYBEAT_SCHEDULE:
设置了任务过期日期。CELERYBEAT_SCHEDULE['---'] = {
'task': ...,
'schedule': ...,
'args': (),
'options': {
# Do not run the task if it starts 30 minutes after it is
# scheduled. This is useful if the Celery workers go down,
# celerybeat will keep adding tasks to the queue.
'expires': 1800
}
}
我的错