我如何删除所有挂起的任务,而不知道每个任务的task_id ?
当前回答
芹菜3+:
CLI:
$ celery -A proj purge
编程:
>>> from proj.celery import app
>>> app.control.purge()
http://docs.celeryproject.org/en/latest/faq.html#how-do-i-purge-all-waiting-tasks
其他回答
对于芹菜3.0+:
$ celery purge
清除特定队列:
$ celery -Q queue_name purge
芹菜4 + 芹菜清除命令清除所有已配置的任务队列
celery -A *APPNAME* purge
编程:
from proj.celery import app
app.control.purge()
所有挂起的任务将被清除。 参考:celerydoc
从文档中可以看出:
$ celery -A proj purge
or
from proj.celery import app
app.control.purge()
(编辑:更新与当前的方法。)
对于芹菜5.0+版本,使用RabbitMQ作为代理
我们需要先建立一个从程序到经纪人的新连接, 并将连接与要清除的队列绑定。
# proj/celery.py
from celery import Celery
app = Celery('proj')
from proj.celery import app
queues = ['queue_A', 'queue_B', 'queue_C']
with app.connection_for_write() as conn:
conn.connect()
for queue in queues:
count = app.amqp.queues[queue].bind(conn).purge()
print(f'Purge {queue} with {count} message(s)')
芹菜3+:
CLI:
$ celery -A proj purge
编程:
>>> from proj.celery import app
>>> app.control.purge()
http://docs.celeryproject.org/en/latest/faq.html#how-do-i-purge-all-waiting-tasks
推荐文章
- 从RabbitMQ中删除所有队列?
- RabbitMQ与通道和连接之间的关系
- 平行的。ForEach vs Task。运行和任务。WhenAll
- 重新安装后无法访问RabbitMQ web管理界面
- UI线程上的任务继续
- 删除芹菜/ rabbitmq中所有挂起的任务
- 任务有什么用。FromResult< result >
- rails耙任务是否提供对ActiveRecord模型的访问?
- 为什么我们需要像RabbitMQ这样的消息代理而不是像PostgreSQL这样的数据库?
- 为什么使用异步和返回等待,当你可以直接返回任务<T> ?
- 等待不同结果的多个任务
- 正确使用任务时。运行,当只是async-await
- 任务与线程的差异
- 如何安全地调用c#异步方法没有等待
- 何时在Kafka上使用RabbitMQ ?