如何从芹菜任务队列中删除任务?

时间:2013-11-08 15:39:56

标签: python django task celery

如何在任务结束后立即删除队列中的所有任务?

我想要这样的东西(Deleting all pending tasks in celery / rabbitmq),但是对于芹菜3.0。

由于

编辑:

来自芹菜文件: http://docs.celeryproject.org/en/latest/faq.html#how-do-i-purge-all-waiting-tasks

我的代码如下:

来自celery import current_app as celery

@task
def task_a():
    celery.control.purge()

我期待着,如果我发出了5个任务,那么只会运行第一个任务。不知何故,我不是那样做的。

由于

1 个答案:

答案 0 :(得分:1)

这些任务可能已被工人预取。要弄清楚这一点,尝试运行大量的任务,而不是通过预取乘数(见下文)乘以活动工作人员,并检查celery.control.purge()返回的结果。您可以使用配置参数CELERYD_PREFETCH_MULTIPLIERCELERY_ACKS_LATE来控制预取任务的数量。