Python 使用芹菜,您如何从“任务”中删除任务;准备好了吗;使用acks_late时的状态=真?

Python 使用芹菜,您如何从“任务”中删除任务;准备好了吗;使用acks_late时的状态=真?,python,rabbitmq,celery,Python,Rabbitmq,Celery,在芹菜中,如果在任务中使用acks_late=True,则在任务完成之前,它不会立即确认任务 我有一个非常简单的任务,就是打印信息。如果我发送一组消息,工作人员将打印出消息,但它们不会被删除。Rabbit仍然将它们报告为“就绪”。“就绪”和“总数”将具有相同的数字(并不断增加),但“未确认”总是在工作人员完成时返回到0 所以看起来,一旦任务完成,它们就被确认了,但是如何将它们从“就绪”状态中移除呢 此外,如果我退出/重新启动worker,它不会在就绪状态下捕获消息。为什么会这样?有没有办法抓住他

在芹菜中,如果在任务中使用acks_late=True,则在任务完成之前,它不会立即确认任务

我有一个非常简单的任务,就是打印信息。如果我发送一组消息,工作人员将打印出消息,但它们不会被删除。Rabbit仍然将它们报告为“就绪”。“就绪”和“总数”将具有相同的数字(并不断增加),但“未确认”总是在工作人员完成时返回到0

所以看起来,一旦任务完成,它们就被确认了,但是如何将它们从“就绪”状态中移除呢

此外,如果我退出/重新启动worker,它不会在就绪状态下捕获消息。为什么会这样?有没有办法抓住他们


谢谢

如果对任何人进行此搜索,则与backend=参数有关。有些教程包含此参数,但没有解释其后果。它将任务的结果作为消息持久化回RabbitMQ。

如果对任何人进行此搜索,则与backend=参数有关。有些教程包含此参数,但没有解释其后果。它将任务的结果作为消息持久化回RabbitMQ

from celery import Celery

broker_uri = 'amqp://.....'

celery_app = Celery('my_name', broker=broker_uri, backend='rpc://')

@celery_app.task(name='bam.add', acks_late=True)
def add(filename):
    print(filename)