2016-07-27 29 views
0

我正在嘗試使用azure-sdk-for-node創建蔚藍服務總線隊列,但無法找到設置時間無限制的資源。如何設置消息時間在azure服務總線隊列中無限生活?

這是我的示例代碼:

變種QUEUEOPTIONS = { MaxSizeInMegabytes: '5120', DefaultMessageTimeToLive: 'PT1M' };

serviceBusService.createQueueIfNotExists( 'myQueue中',QUEUEOPTIONS,函數(誤差){ 如果(誤差){// 隊列存在 } !});

DefaultMessageTimeToLive會有什麼限制嗎?

回答

3

您的代碼只將消息TTL設置爲1分鐘。 您無法將TTL設置爲無限制,因爲它需要TimeSpan值,所以您必須指定一些內容。這可能是一個相當大的價值,但我建議避免這種做法有幾個原因:

  1. 這是一個託管服務。 TTL今天不受限制,但可能是。
  2. 對於消息傳遞,具有非常長的TTL是指示不應該做的事情(消息應該很小並且處理得很快)。

話說,從今天開始,你可以設置TTL爲TimeSpan.MaxValue,這是

  • 10675199天
  • 2小時
  • 48分鐘
  • 5秒
  • 477毫秒

或iso8601格式爲P10675199DT2H48M5.4775807S

實際上,365天(P365D)甚至30天(P30D)對於消息傳遞來說太過分了。

+0

感謝您的回覆肖恩。 但是根據這個比較(https://azure.microsoft.com/en-in/documentation/articles/service-bus-azure-and-service-bus-queues-compared-contrasted/),這是服務總線的一個特點隊列。 – AvinashSachdewani

+0

那麼,文檔是由人類寫的.10675199天大概是29247年。我確信你創建的應用程序可以很容易地被認爲是無限的:)除了如何獲得一個超級大的TTL之外,我試圖傳達的一點是,你不應該將它計算在內在將來。消息傳遞應該很快,不得不存儲消息,這些消息比規則更像是一個例外。 –

+0

此外,嘗試超越TimeSpan.Max一毫秒,ASB將拒絕該TTL值。所以,TimeSpan.Max是無限的。我已經打開公關澄清,在這裏https://github.com/Azure/azure-content/pull/7117 –

相關問題