2016-09-28 95 views
1

队列设置TTL(生存时间)为5分钟。Azure服务总线 - 带ScheduledEnqueueTimeUtc的TTL

当您从UtcNow中添加1分钟的ScheduledEnqueueTimeUtc消息时,消息是否会在5分钟或6分钟内过期?

我的假设是6,因为一旦消息在队列中处于“活动”状态,并且消息在预定排队时间过去之前不活动,我认为TTL'倒计时'为'开始'。

然后,如果您排队6分钟的消息,它将在11分钟后过期。

我的假设是否正确?

回答

2

你的假设是正确的。有一个消息的几个属性:

ScheduledEnqueueTimeUtc时间消息出现用户代码设置 TimeToLive时间消息,生活在被用户或实体设置(在你的情况下,队列) EnqueuedTimeUtc - 阅读当由代理接收到的消息-only时间 ExpiresAtUtc - 计算出的时间时消息将到期

如果消息在时间X烯排队,队列上的TTL是5分钟,并且对于各个消息中指定不低TTL,那么该消息将在X + 1时间出现在队列中。即EnqueuedTimeUtc将X + 1. TimeToLive 5分钟,将ExpiresAtUtc如下计算X + 1 + 5

因此一个消息烯排队6分钟从现在(X),它不会到期之前X + 11 。