我正在使用django-celery来实现流动doc的定期任务。我开始了芹菜工作并成功击败了:
[tasks]
. scheduler.tasks.test
计划程序是我的应用程序的名称。我在scheduler.tasks.py中配置任务并将定期任务保存在我的view.py中。但是在我发送HTTP requset来创建周期性任务之后,celery beat报告了这样的错误:
Traceback (most recent call last):
File "/myhome/lib/python2.7/site-packages/celery/worker/consumer.py", line 455, in on_task_received strategies[name](message, body,
KeyError: u'<@task: scheduler.tasks.test of myproj:0x7f8847449910>'
我用Google搜索并找到了一些关于相关导入问题的答案,但错误消息中的任务名称与已注册任务的任务名称相同。
还有什么问题?
编辑:
已注册的scheduler.tasks.test的另一个证据是,如果我调用test.delay()而不是使其成为定期任务,则可以成功处理它。
答案 0 :(得分:0)
问题解决了。
注册的任务是scheduler.tasks.test
,但是从词典中找到任务的关键是KeyError: u'<@task: scheduler.tasks.test of myproj:0x7f8847449910>'
。也就是说,键是一个字符串,但是给它一个对象的unicode。
因此,请记住使用与键相同的字符串来查找任务。