作为更大用例的一部分,我正在探索将消息从源移动到临时队列的铲子插件。我正在为每个队列创建动态铲子,以将消息移动到临时队列并使用属性"delete-after": "queue-length"删除动态铲子。我在 RabbitMQ 管理控制台(Admin->Shovel status)中看到动态铲子已成功删除,但源/临时队列的状态正在运行。
但问题是,当新消息进入源队列时,即使源队列没有消费者,它们也会自动移动到临时队列。
笔记:
- 源队列和临时队列都是持久的。
- 消息是持久的(传递模式:2)
- 由于有数百个队列,上述操作是并行执行的。我正在为每个队列创建动态铲子并删除它们。
虽然我使用 DELETE HTTP API 而不是上述方法来删除动态铲子,但它运行良好。我想避免进行额外的 HTTP 调用,因为源队列有数百个。