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 字段