【发布时间】:2014-01-03 16:11:59
【问题描述】:
BrokeredMessage 上的文档说:
如果发送者对消息设置的 TTL 超过了目的地的 TTL,则消息的 TTL 将被后面的值覆盖。请参阅 DefaultMessageTimeToLive、DefaultMessageTimeToLive 和 DefaultMessageTimeToLive 了解有关如何在实体级别控制消息 TTL 的更多信息。
所以,为了实现自动从我的“日志”订阅中删除消息,在创建订阅时,我将SubscriptionDescription.DefaultMessageTimeToLive 属性设置为TimeSpan.FromDays(5)。
当我创建并发送代理消息时,将该消息上的TimeToLive 属性保留为默认值,当我检查到达该订阅的消息时,消息的ExpiresAtUtc 属性为31-12-9999 23:59。 TimetoLive 属性是 10675199.02:48:05.4775807。由于“目标”订阅的 TTL 为 5 天,我预计那里的值 5.00:00:00。
我还需要做些什么才能让它工作吗?
使用 Service Bus Explorer 2.2.1.0 重现的步骤
- 连接到 Azure 上的服务总线命名空间
- 创建一个新主题“MyTopic”
- 在主题下创建订阅“日志”并将默认消息时间设置为 5 天。
- 右键单击 MyTopic 主题节点并选择“发送消息”
- 在“向 MyTopic 发送消息”屏幕上:单击“开始”
- 点击“日志”订阅节点
- 点击“消息”按钮并选择Peek 10
- 点击列表中的消息
- 查看“消息属性”区域中的 TimeToLive 字段
【问题讨论】:
-
您可以使用这个工具来验证您在订阅时设置的TTL是否真的被应用或其他一些问题code.msdn.microsoft.com/windowsazure/…
-
@DhanaKrishnasamy:我已经准备好使用该工具了。它显示订阅已将“默认消息生存时间”设置为 5 天。它还显示该订阅中的消息(使用 Peek)都将“TimeToLive”设置为 10675199.02:48:05.4775807
-
贴出代码和截图可能会帮助您快速回答
-
我在我的问题中添加了“使用 Service Bus Explorer 2.2.1.0 重现的步骤”。希望这可以澄清情况。
-
我收到消息时的 ttl 为 5
标签: azure servicebus brokeredmessage