Celery任务状态只有'PENDING'和'SUCCESS'。为什么任务状态没有“STARTED”?

Blu*_*ino 6 python redis celery

我正在开发一个演示,代码很简单:

\n\n
# tasks.py\nimport time\n\nfrom celery import Celery\n\napp = Celery(\'tasks\',\n             broker=\'redis://:5tgb^YHN7ujm*IK<@localhost:6379/0\',\n             backend=\'redis://:5tgb^YHN7ujm*IK<@localhost:6379/0\'\n             )\n\n\n@app.task\ndef test_task(s):\n    time.sleep(300)\n    return s\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后启动工人

\n\n
 celery -A celery_test.app  worker -n kalidog -c 2 -l debug -E\n\n -------------- celery@kalidog v4.3.0 (rhubarb)\n---- **** ----- \n--- * ***  * -- Linux-4.9.0-8-amd64-x86_64-with-debian-9.8 2019-10-11 02:36:12\n-- * - **** --- \n- ** ---------- [config]\n- ** ---------- .> app:         tasks:0x7f17bf92e128\n- ** ---------- .> transport:   redis://:**@localhost:6379/0\n- ** ---------- .> results:     redis://:**@localhost:6379/0\n- *** --- * --- .> concurrency: 2 (prefork)\n-- ******* ---- .> task events: ON\n--- ***** ----- \n -------------- [queues]\n                .> celery           exchange=celery(direct) key=celery          \n
Run Code Online (Sandbox Code Playgroud)\n\n

然后安排任务:

\n\n
>>>from celery_test import test_task\n>>>result = test_task.apply_async((11,)) \n>>>result.status\n\'PENDING\'\n>>>result.state\n\'PENDING\'\n>>>result.state\n\'PENDING\'\n>>>result.state\n\'SUCCESS\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么任务状态没有“STARTED”?而且我检查了redis。redis中没有\xe2\x80\x98celery-task-meta-XXX\xe2\x80\x99等当前任务的key,直到任务完成了

\n

Dej*_*kic 8

默认情况下不启用该功能。更多相关信息:https ://docs.celeryproject.org/en/latest/userguide/tasks.html#started

  • 非常感谢,设置后问题解决了。`app.conf.task_track_started = True` (2认同)