python - Celery 获取已注册任务列表

标签 python celery

有没有办法获取已注册任务的列表?

我试过了:

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/

相关文章:

python - 为 MySQL 查询返回的每一行运行 Celery 任务?

django - Python opencv等待相机空闲

python - 在 Python 脚本中使用 sudo

python - 使用递归时函数不返回任何值

python - 从 django 数据库中获取多行?

python - 如何禁用 Celery 的 Gossip 和 Mingle 组件?

python - 当用户的 Flask session 结束时,如何从 redis 后端删除所有 Celery 结果?

python - Word2VecKeyedVectors 对象不支持项目分配

python - 在python中读取TDMS文件如何使用tdms info命令?

kubernetes - Apache Airflow 或 Argoproj 用于在 kubernetes 上长时间运行和 DAG 任务