设置队列的TTL(生存时间)为5分钟。
当您从UtcNow添加1分钟的ScheduledEnqueueTimeUtc消息时,消息是否会在5分钟或6分钟后到期?
我的假设是6,因为一旦消息在队列中处于'活动状态'并且消息在计划的排队时间过去之前没有激活,我预计TTL'倒计时'将'开始'。
然后,如果您将消息排队6分钟,它将在11分钟后过期。
我的假设是否正确?
答案 0 :(得分:3)
你的假设是正确的。消息上有几个属性:
消息显示由用户代码设置的 ScheduledEnqueueTimeUtc
时间
用户或实体设置的消息生效时间TimeToLive
(在您的情况下是队列)
EnqueuedTimeUtc
- 代理收到消息时的只读时间
ExpiresAtUtc
- 消息过期的计算时间
如果消息在时间X处被入队,则队列上的TTL为5分钟而不是为单个消息指定的TTL不低,则该消息将在X + 1时出现在队列中。即EnqueuedTimeUtc
将为X + 1. TimeToLive
5分钟,ExpiresAtUtc
将计算为X + 1 + 5。
因此,从现在开始(X)出现6分钟的消息,它不会在X + 11之前到期。