2016-07-27 33 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 –

相关问题