Я пишу небольшое тестовое задание для django-celery, в котором я хотел бы установить пользовательское состояние (и некоторые данные, но сначала начнем с пользовательского состояния).django celery: update_state ничего не делает
Я использую django как сервер обмена сообщениями. Моя версия python - 2.6.
Вот содержание tasks.py
import time
from djcelery import celery
@celery.task
def generate():
generate.update_state(state="PROGRESS")
time.sleep(10)
return True
А вот что происходит, когда я даю ему попробовать:
>>> import tasks
>>> result = tasks.generate.delay()
>>> result
<AsyncResult: f72574aa-f8c5-49dc-89d4-47d2012a4d6d>
# status and state are the same, but just to make sure
>>> result.status
u'PENDING'
>>> result.state
u'PENDING'
>>> result.result
# empty, as in None
# wait a few seconds
>>> result.status
u'SUCCESS'
>>> result.state
u'SUCCESS'
>>> result.result
True
Я не могу понять, почему государство ОЖИДАНИЕ в то время как он должен ПРОГРЕСС. Есть идеи?
Я уже посмотрел на документацию, и вот соответствующая ссылка: http://docs.celeryproject.org/en/latest/userguide/tasks.html#custom-states
я сделать то же самое (минус мета, но я также безуспешно), поэтому он должен работать.
UPDATE: Я выяснил, почему, похоже, что вы должны перезапустить демон сельдерея, когда вы обновляете свои задачи, чтобы изменения были приняты во внимание.