2015-10-14 3 views
0

Я использую django-сельдерей для реализации периодических задач, текущих doc. И я начал работу сельдерей и успешно победил:django сельдерей периодическая задача отчет о незарегистрированной задаче

[tasks] 

    . scheduler.tasks.test 

Планировщик - это мое приложение. Я настраиваю задачи в scheduler.tasks.py и сохраняю периодические задачи на моем view.py. Но после того, как я отправить HTTP requset создать периодическую задачу, сельдерей биения сообщают об ошибке, как это:

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>' 

Я гугл и нашел ответы на некоторые вопросы по поводу относительных вопросов импорта, но имя задачи в сообщении об ошибке такого же с записью зарегистрированной задачи.

В чем еще может быть проблема?

EDIT:

Еще одним свидетельством того, scheduler.tasks.test было зарегистрировано в том, что если я называю test.delay(), а не сделать его периодическую задачу, он может быть обработан успешно.

+0

Вы импортировали свой сельдерей confs scheduler.tasks.py в файл \ __ init \ __. Py, где находятся settings.py? – HassenPy

+0

@HassenPy Я использую автоматическое обнаружение, поэтому то, что вы сказали, не является необходимым. И журнал показывает, что задачи были успешно найдены. –

ответ

0

Проблема решена.

Зарегистрированная задача scheduler.tasks.test, но ключ, чтобы найти задачу от dict, - KeyError: u'<@task: scheduler.tasks.test of myproj:0x7f8847449910>'. Другими словами, ключ является строкой, но ей присваивается юникод объекта.

Итак, не забудьте использовать ту же строку, что и ключ, чтобы найти задачу.