gpt4 book ai didi

azure - 如何自动使 Azure 服务总线订阅上的消息过期?

转载 作者:行者123 更新时间:2023-12-03 00:52:35 24 4
gpt4 key购买 nike

关于 BrokeredMessage 的文档说:

If the TTL set on a message by the sender exceeds the destination's TTL, then the message's TTL will be overwritten by the later value. See DefaultMessageTimeToLive, DefaultMessageTimeToLive and DefaultMessageTimeToLive to learn more about how to control message TTL at an entity level.

因此,为了实现从“日志”订阅中自动删除消息,在创建订阅时,我将 SubscriptionDescription.DefaultMessageTimeToLive 属性设置为 TimeSpan.FromDays(5).

当我创建并发送代理消息时,将该消息的 TimeToLive 属性保留为默认值,当我检查到达该订阅的消息时,ExpiresAtUtc消息的属性为 31-12-9999 23:59TimetoLive 属性为 10675199.02:48:05.4775807。由于“目标”订阅的 TTL 为 5 天,因此我预计那里的值是 5.00:00:00

我还需要做其他事情才能使其正常工作吗?

使用 Service Bus Explorer 2.2.1.0 重现的步骤

  1. 连接到 azure 上的服务总线命名空间
  2. 创建新主题“MyTopic”
  3. 在该主题下创建订阅“日志”,并将默认消息生存时间设置为 5 天。
  4. 右键单击 MyTopic 主题节点并选择“发送消息”
  5. 在“向 MyTopic 发送消息”屏幕上:点击“开始”
  6. 点击“日志”订阅节点
  7. 点击“消息”按钮并选择查看 10
  8. 点击列表中的消息
  9. 查看“消息属性”区域中的 TimeToLive 字段

最佳答案

显然,窥视消息上的 TTL 值毫无意义:

This behavior is currently by design and should be seen independent of SDK version: the effective TTL is the minimum TTL of message and entity and is checked at runtime, rather than imprinted on the message at enqueue time (because the entity-level TTL could be changed at any time after messages were enqueued). The documentation is misleading and should be fixed.

这个答案是在这个 MSDN 线程上给出的:http://social.msdn.microsoft.com/Forums/windowsazure/en-US/dfe58dbb-186d-4c71-a708-8f6f7267b451/when-peeking-for-messages-the-time-to-live-value-seems-not-to-be-set-is-this-a-bug

关于azure - 如何自动使 Azure 服务总线订阅上的消息过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20608061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com