有没有办法获取已注册任务的列表?
我试过了:
celery_app.tasks.keys()
仅返回内置的 Celery 任务,如 celery.chord、celery.chain 等。
最佳答案
对于新版本的celery(4.0或以上),我们可以通过如下方式获取注册任务。
from celery import current_app
tasks = current_app.tasks.keys()
对于老版本的celery,celery<4,我们可以通过如下方式获取注册任务。
from celery.task.control import inspect
i = inspect()
i.registered_tasks()
这将提供所有 worker 和相关注册任务的字典。
from itertools import chain
set(chain.from_iterable( i.registered_tasks().values() ))
如果您有多个工作人员运行相同的任务,或者您只需要一组所有已注册的任务,它就可以完成这项工作。
替代方式:
您可以从终端使用此命令获取已注册任务的转储
celery inspect registered
要检查与特定应用相关的任务,您可以传递应用名称
celery -A app_name inspect registered
关于python - Celery 获取已注册任务列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26058156/