Python 芹菜任务状态未更新,ignore_result设置为True,但调用了update_state()

Python 芹菜任务状态未更新,ignore_result设置为True,但调用了update_state(),python,celery,Python,Celery,关于芹菜的结果后端设置,我不确定是否有什么误解,但这就是我面临的问题:我有一大堆任务,我对它们的结果不感兴趣,但我确实想不时检查它们的状态。 因此,我提出: ignore_result = True 尽管有此设置,但似乎如果将结果后端配置为使用AMQP,结果队列仍在创建中-每个任务一个-为什么? 因此,我试图通过设置以下内容来确保不会同时有太多(结果)队列(这会影响RabbitMQ的性能): CELERY_TASK_RESULT_EXPIRES = 60 奇怪的是,如果我没有检查: Asyn

关于芹菜的结果后端设置,我不确定是否有什么误解,但这就是我面临的问题:我有一大堆任务,我对它们的结果不感兴趣,但我确实想不时检查它们的状态。 因此,我提出:

ignore_result = True
尽管有此设置,但似乎如果将结果后端配置为使用AMQP,结果队列仍在创建中-每个任务一个-为什么? 因此,我试图通过设置以下内容来确保不会同时有太多(结果)队列(这会影响RabbitMQ的性能):

CELERY_TASK_RESULT_EXPIRES = 60
奇怪的是,如果我没有检查:

AsyncResult(task_id).state
在任务完成后的前60秒内,任务的状态将永远处于挂起状态,即使对于某些任务,我手动调用

update_state(state='SUCCESS') 
在任务中。更奇怪的是,每当我尝试获取任务状态时,尽管所有状态都处于挂起状态(尽管它们应该是已完成的状态之一),结果队列仍会重新出现在队列列表中,但任务状态从未改变——我在检查任务状态之前和之后使用rabbitmqadmin列出所有队列

谁能解释一下我做错了什么或发生了什么事? 如果我完全忽略结果,为什么任务的状态取决于结果到期时间

如果我想忽略任务的结果,但仍然能够检查任务的状态,我应该使用什么设置

p、 我现在使用的是芹菜3.0.23,但行为与3.0.13相同。

请参见和。