2013-04-22 34 views
0

例如:RabbitMQ Shovel如何配置爲用當前時間覆蓋timestamp屬性?

{myshovel, [ 
    {sources, ...} 
    , {destinations, ...} 
    , {queue, <<>>} 
    , {ack_mode, on_confirm} 
    , {publish_properties, [ 
     {delivery_mode, 2} 
     , {timestamp, now} % this is the line I need to understand how to write 
    ]} 
    , {publish_fields, [{exchange, <<"">>}, {routing_key, <<"">>}]} 
    , {reconnect_delay, 5} 
]} 

我很好奇如何編寫的方式publish_properties使RabbitMQ的鏟覆蓋與當前時間的時間戳(當鏟接收消息並它放到目標隊列)。

回答

1

不幸的是,在撰寫本文時,不可能以這種方式配置挖掘機。挖鏟工作人員開始時會讀取剷鬥配置(包括用於轉發消息的publish_properties),並且只能包含靜態內容。因此,無論您將什麼值放入{publish_properties, [{timestamp, TimeStamp}]}都將直接傳遞給erlang-客戶端,這將會嘗試將這些值(使用amqp_ framing層)串行化。

我們目前正在計劃對鏟子插件進行一些改進(例如集羣級故障切換和動態重新配置),並且您不是第一個要求此功能的人,因此我們將考慮它是否合理支持此處特定的內容(例如爲每個處理的消息設置新的時間戳)或配置鏟工的運行時行爲的通用方法。

+0

非常有幫助,我有點想法,但想確保。目前,我正在通過廣域網使用鏟子,並試圖鎖定點之間的延遲時間並給出相應的指標。這將是非常有用的。 – dlamotte 2013-04-23 13:13:53