2014-10-20 92 views
0

我在Docker鏡像中有RabbitMQ集羣。 RabbitMQ有1個交換「EventExchange」和2個隊列:「QueueWait」和「QueueAction」。隊列配置重發:重新發送來自RabbitMQ的消息奇怪的

  • X-死信交換:EventExchange
  • X-死信路由鍵:QueueAction
  • 耐用:真

和消費監聽QueueAction 。

邏輯

  1. 消息被插入到與
  2. 後到期消息從QueueWait移動到QueueAction
  3. 可變期滿時間隊列QueueWait
  4. 消費者收聽QueueAction得到消息

問題

今天我有問題。過期的消息不會在QueueWait和QueueAction之間移動。但是,如果我得到的所有消息從QueueWait在RabbitMQ的默認界面,他們將被轉移到QueueAction成功地

環境

  • 泊塢窗的圖像 - 可能是碼頭工人的問題?
  • RabbitMQ的3.2.4,二郎R16B03

UPD:

我必須設置TTL上的消息的水平,因爲我對重發的嘗試可變期滿dependet。我將如何能夠保證當前的邏輯與保證重發?

回答

1

看看https://www.rabbitmq.com/ttl.html#per-message-ttl-caveats

RabbitMQ的,當他們到達隊列的頭到期的消息,所以如果你沒有消費者,很有可能你的郵件將不會過期。

+0

我錯過了這個警告,tnx。但我需要TTL的消息(不是隊列),因爲我必須增加一條消息的重發間隔。 – 2014-10-21 07:05:44