python – django celery:update_state什么都没做
作者:互联网
我正在为django-celery编写一个小测试任务,我想在其中设置一个自定义状态(和一些数据,但让我们先从自定义状态开始).
我使用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
我无法弄清楚为什么状态是PENDING而它应该是PROGRESS.任何的想法?
我已经查看了文档,这里是相关链接:http://docs.celeryproject.org/en/latest/userguide/tasks.html#custom-states
我做了完全相同的事情(减去元,但我也试过没有成功),所以它应该工作.
更新:我发现原因,看起来你必须在更新任务时重新启动celery守护进程,以便考虑更改.
解决方法:
我发现原因,看起来你必须在更新任务时重新启动celery守护进程,以便考虑更改.
标签:python,django,celery,django-celery 来源: https://codeday.me/bug/20190626/1290251.html