检索到相应结果后,如何删除临时RabbitMQ队列?

检索到相应结果后,如何删除临时RabbitMQ队列?,rabbitmq,celery,Rabbitmq,Celery,我的问题是建立在这个基础上的: 我的应用程序需要检索结果,因为它将结果上传到S3文件。然而,临时队列的数量导致我的代理崩溃(机器内存不足)。我想在检索到相应的结果后删除临时队列。在我的芹菜客户端脚本中,我正在遍历结果列表(其中每个结果都来自function.delay()): 是否有任何方法可以实现上述目标--在检索到结果后删除临时队列 我会在celeryconfig中使用CELERY\u TASK\u RESULT\u EXPIRES选项,但我不知道何时可以安全地清理临时队列,因为可能无法检索

我的问题是建立在这个基础上的:

我的应用程序需要检索结果,因为它将结果上传到S3文件。然而,临时队列的数量导致我的代理崩溃(机器内存不足)。我想在检索到相应的结果后删除临时队列。在我的芹菜客户端脚本中,我正在遍历结果列表(其中每个结果都来自function.delay()):

是否有任何方法可以实现上述目标--在检索到结果后删除临时队列

我会在celeryconfig中使用CELERY\u TASK\u RESULT\u EXPIRES选项,但我不知道何时可以安全地清理临时队列,因为可能无法检索结果。是否仍然可以删除此脚本中的特定队列(请注意,我有结果中的队列Id)

补充说明:


我正在启用HA的集群中运行所有rabbitmq服务器。

我这样做的方式是使用rabbitmq中的rabbitmqadmin。我是通过

wget localhost:15672/cli/rabbitmqadmin 
安装管理插件后

rabbitmq-plugins enable rabbitmq_management
确保您的用户具有rabbitmq的管理员标记,否则您将无法执行命令。然后,我使用python子流程导入和rabbitmqadmin delete queue name=''删除了脚本中的队列。请记住,队列名称与相应的结果id相同,只是没有连字符

还要确保在rabbitmqadmin命令中添加params-v myvhost-u myusername-p mypassword,默认vhost为/

我相信这将删除集群中所有节点上的队列,尽管我不能完全确定这一点

rabbitmq-plugins enable rabbitmq_management