RabbitMQ:自动清除\消费消息后删除队列

时间:2018-02-25 10:11:05

标签: rabbitmq queue

我的应用程序需要连接到RabbitMQ队列并使用其中的消息(仅1)。我还必须确保在消息消失后​​立即删除队列。我正在寻找一种方法来做到这一点,配置简单。那可能吗?如果是,怎么样?

我在考虑以下选项:

设置为true:

我相信这意味着自动删除也会设置为true(除非专门设置为false)。当最后一个消费者被取消时,队列将被删除'。但这究竟意味着什么呢?这是否意味着消息消失后​​会被删除?这也意味着它只能使用声明队列的连接来消费吗?

将过期参数设置为x秒:

这将是一种更清洁的方式来摧毁我相信的队列。但问题在于找到正确的价值。来自队列的消息可以在3秒内消耗 - 但也可能会花费一分钟或更长时间。在这种情况下,它将一直保持到期满 - 即使队列消耗得更早。

有更好的选择吗?

1 个答案:

答案 0 :(得分:0)

RabbitMQ团队监控this mailing list,有时只回答StackOverflow上的问题。

我使用谷歌搜索site:rabbitmq.com queue delete,第二次点击是这个文件:

https://www.rabbitmq.com/queues.html

在该文件中,“临时队列”部分说明如下:

  

自动删除队列将在其最后一个使用者被取消时被删除(例如,使用AMQP 0-9-1中的basic.cancel)或者已经消失(关闭通道或连接,或者与服务器的TCP连接丢失)。 / p>

这听起来和你需要的完全一样。一旦您的消费者读取并确认单个消息,它就会断开连接,RabbitMQ将删除该队列。

独占队列(也在该页面上记录)只允许从单个连接进行访问,因此如果您的发布者与您的消费者(听起来像)不同,那么这将不是一个选项。

相关问题