编程语言
首页 > 编程语言> > python – django celery:update_state什么都没做

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