我通过在终端中执行以下操作来启动工作人员:
celery -A cel_test worker --loglevel=INFO --concurrency=10 -n worker1.%h
然后我收到一条长循环错误消息,指出芹菜已收到未注册的任务并已触发:
KeyError: 'cel_test.grp_all_w_codes.mk_dct' #this is the name of the task
问题在于cel_test.grp_all_w_codes.mk_dct
不存在。事实上,即使是模块cel_test.grp_all_w_codes
,也更不用说任务mk_dct
了。几天前曾有过一次,但我删除了它。我想也许有一个.pyc
文件浮动但是没有。我也无法在我的代码中找到引发错误的任务的单个引用。我关闭了我的计算机并重新启动了rabbitmq服务器,认为可能引用某些东西只是卡在内存中但它没有帮助。
有谁知道这里可能出现什么问题或者我错过了什么?
答案 0 :(得分:3)
好吧,在不知道你的conf文件的情况下,我可以看到两个可能引起这种情况的原因:
mk_dct
任务尚未完成。如果您使用CELERY_ACKS_LATE
运行,则每次重新运行工作时都会尝试重新启动任务。尝试删除此设置,或使用purge option. celery -A cel_test worker --loglevel=INFO --concurrency=10 -n worker1.%h --purge
mk_dct
任务。如果是这样,请尝试重新启动芹菜节拍并清除它的数据库后端(如果您有自定义数据库后端)。如果没有解决问题,请发布您的芹菜conf,并确保已清理项目的所有.pyc
并重新启动所有内容。