【发布时间】:2023-08-15 11:39:01
【问题描述】:
我的应用程序需要连接到 RabbitMQ 队列并使用其中的消息(仅 1 个)。而且我还必须确保在消息被消费后立即删除队列。我一直在寻找一种方法来做到这一点,只需简单的配置。那可能吗?如果是,怎么做?
我正在考虑以下选项:
设置独占为真:
我相信这意味着自动删除也设置为 true(除非专门设置为 false)。当“最后一个消费者被取消”时,队列将被删除。但这实际上意味着什么?这是否意味着一旦消息被消费,它将被删除?这是否也意味着它只能使用声明队列的连接来使用?
将过期参数设置为 x 秒:
我相信这将是一种更简洁的销毁队列的方法。但这里的问题是找到正确的值。来自队列的消息可以在 3 秒内被使用 - 但也可能需要一分钟或更长时间。在这种情况下,它会一直保持到过期秒数 - 即使队列被消耗得更早。
还有更好的选择吗?
【问题讨论】: