铁锹
- 使用队列中的消息,
- 将每条消息重新发布到目标代理(默认情况下,使用原始交换名和routing_key 适用)。
我找不到任何文档,当涉及到铲子时,消息TTL的预期行为是什么:
是否在收到消息时用于计算TTL开始的时间 在源经纪人还是目标经纪人处?还是仅对首次发布有效,即在源代理处有效?
如果消息到达目标代理之前经过了到期时间,会发生什么?
答案 0 :(得分:0)
因此,我认为您在粘贴的文档中回答了问题。shovel
所做的只是将消息从一个队列移到另一个队列,并在此过程中重新发布它们。它将保留所有原始消息属性,理论上包括TTL属性。
话虽如此,我不认为这是您需要担心的事情。
shovel
传输的消息在初始队列中的花费最好不超过几毫秒,即使它们甚至根本不在那儿(附有使用者的消息队列实际上也不会使任何消息进入队列大多数情况)。因此,在第一个队列中花费的时间应该很小,以至于没关系。shovel
的活动与正常噪声相当。如果您发现自己处于shovel
接收之前大量消息在队列中累积的情况,那么您可能需要处理应用程序中的到期。这样做还有其他好处和警告,但是总体上您可以获得更精细的控制。