python - 如何按任务名称检查和取消 Celery 任务

标签 python redis celery

我使用 Celery (3.0.15) 和 Redis 作为代理。

是否有一种直接的方法可以查询 Celery 队列中存在的具有给定名称的任务的数量?

作为后续,有没有办法取消 Celery 队列中存在的所有具有给定名称的任务?

我已经通过Monitoring and Management Guide并且在那里看不到解决方案。

最佳答案

# Retrieve tasks
# Reference: http://docs.celeryproject.org/en/latest/reference/celery.events.state.html
query = celery.events.state.tasks_by_type(your_task_name)

# Kill tasks
# Reference: http://docs.celeryproject.org/en/latest/userguide/workers.html#revoking-tasks
for uuid, task in query:
    celery.control.revoke(uuid, terminate=True)

关于python - 如何按任务名称检查和取消 Celery 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575826/

相关文章:

python - 循环分组行并比较组中的第一行-Python

ruby-on-rails - 在 rails 中使用 resque 调度程序时如何检查作业的状态?

ubuntu - 如何从头开始重启redis和celery?

python - argparse:在某些情况下将参数从位置更改为可选

python - 使用 `With` 标签反转 Django 模板中的 bool 值?

python - 如何根据用户组显示 Django 模板?

javascript - 从客户端设置和清除 Node 服务器上的超时

django - 如何调整 redis 设置以与 Heroku-redis 兼容?

python - Sentry - 同时记录 Flask 和 Sentry/相同的 DSN

docker - Celery beat + redis with password抛出No Auth异常