如何在任务结束后立即删除队列中的所有任务?
我想要这样的东西(删除芹菜/兔子mq中的所有待处理任务),但对于芹菜3.0。
谢谢
编辑:
来自芹菜文档:http://docs.celeryproject.org/en/latest/faq.html#how-do-i-purge-all-waiting-tasks
我的代码如下所示:
从芹菜进口current_app作为芹菜
@task
def task_a():
celery.control.purge()
我预计,如果我发出 5 个任务,只有第一个会运行。不知何故,我不这样做。
谢谢
这些任务可能已经被工作人员预取了。要找出这一点,请尝试运行的任务数量超过预取乘数(见下文)的活动工作线程,并检查celery.control.purge()
返回的结果。您可以使用配置参数CELERYD_PREFETCH_MULTIPLIER
和CELERY_ACKS_LATE
来控制预取任务的数量。