2012-05-31 3 views
3

Я пишу небольшое тестовое задание для 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: Я выяснил, почему, похоже, что вы должны перезапустить демон сельдерея, когда вы обновляете свои задачи, чтобы изменения были приняты во внимание.

ответ

4

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