首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任务状态和django-celery

任务状态和django-celery
EN

Stack Overflow用户
提问于 2012-01-16 15:25:55
回答 1查看 5K关注 0票数 11

我使用django-celery,任务如下:

代码语言:javascript
复制
class TestTask(Task):
    name = "enabler.test_task"

    def run(self, **kw):
        debug_log("begin test task")
        time.sleep(5)
        debug_log("end test task")

    def on_success(self, retval, task_id, args, kwargs):
        debug_log("on success")

    def on_failure(self, retval, task_id, args, kwargs):
        debug_log("on failure")

我使用django shell运行任务:

代码语言:javascript
复制
python manage.py shell

r = tasks.TestTask().delay()

从celery日志中,我可以看到该任务已执行:

代码语言:javascript
复制
[2012-01-16 08:13:29,362: INFO/MainProcess] Got task from broker: enabler.test_task[e2360811-d003-45bc-bbf8-c6fd5692c32c]
[2012-01-16 08:13:29,390: DEBUG/PoolWorker-3] begin test task
[2012-01-16 08:13:34,389: DEBUG/PoolWorker-3] end test task
[2012-01-16 08:13:34,390: DEBUG/PoolWorker-3] on success
[2012-01-16 08:13:34,390: INFO/MainProcess] Task enabler.test_task[e2360811-d003-45bc-bbf8-c6fd5692c32c] succeeded in 5.00004410744s: None

然而,当我检查来自地狱的任务状态时,我总是处于挂起状态:

代码语言:javascript
复制
>>> r = tasks.TestTask().delay()
>>> r
<AsyncResult: e2360811-d003-45bc-bbf8-c6fd5692c32c>
>>> r.state
'PENDING'
>>> r.state
'PENDING'
>>> r.state
'PENDING'
>>> r.state
'PENDING'

即使任务被很好地执行。

为什么会发生这种情况?

EN

回答 1

Stack Overflow用户

发布于 2012-11-06 07:11:26

你用的是什么版本的芹菜?我注意到我来这个聚会真的很晚,但以防万一这对将来有人有帮助。如果任务设置为ignore_result (在最新版本中是默认的),它将停留在PENDING状态,不会成功。

他们的文档在这里,

代码语言:javascript
复制
@celery.task(ignore_result=True)
def mytask(...)
    something()

您可以自己查看here,如果您有任何其他问题,请让我知道。

**还要注意,即使您将ignore_result设置为true,您也可以像这样手动更新状态。

代码语言:javascript
复制
from celery import current_task
current_task.update_state(state='PROGRESS', meta={'description': 'Doing some task', 'current': 59, 'tota': 73})

进度条特性--也可以在celery的文档页面中找到。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8876863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档