2017-03-02 45 views
0

我正在研究需要向Azure服務總線發送消息的Java應用程序,以便在某個延遲後消息可用於下一個進程。什麼是AMQP/JMS世界中BrokerProperty「setScheduledEnqueueTimeUtc」的等效參數

使用Azure sdk,可以通過在Brokered消息上設置setScheduledEnqueueTimeUtc BrokerProperty來實現,但我無法在AMQP/JMS世界中找到相應的代碼。

使用帶密鑰的Message.setProperty,值對導致屬性被置於應用程序屬性下,消息立即出現在隊列中。

有沒有辦法實現這種延遲?

回答

0

JMS 2.0規範定義了「傳送延遲」功能,它可以讓消息在指定的時間段後傳送。請參閱http://www.oracle.com/technetwork/articles/java/jms2messaging-1954190.html瞭解更多詳情。您將需要一個實現JMS 2.0規範的消息傳遞提供程序。

+0

感謝Shashi,升級到JMS2.0,但得到以下錯誤,表明Azure可能不支持它 - 錯誤消息:在JMS處理期間發生未分類異常;嵌套異常是javax.jms.JMSException:遠程不支持延遲消息傳遞' – Ani

+0

看起來您已將JMS客戶端升級到2.0,但不是消息傳遞提供程序。必須更新JMS客戶端和消息傳遞提供程序以支持交付延遲。你使用哪個消息提供商? – Shashi

+0

帶有qpid-jms-client v0.20.0的spring-jms v4.3.3 – Ani

相關問題