azure 存储队列消息直播时间

use*_*430 10 azure-storage azure-queues

我是否理解正确,在 Windows Azure 队列存储中,一条消息最多可以保留 7 天?

7 天后消息会怎样?

如果您在 7 天内阅读了一次邮件并且没有删除它,会发生什么情况?我的意思是您从队列中读取消息并将可见性超时设置为 1 分钟。在您阅读消息(未删除)并且 1 分钟超时可见性到期后会发生什么?我知道它又回来了并且可以在队列中使用,但是该消息的 7 天 TTL 会发生什么,是从该点更新到 7 天,还是从消息创建后整整 7 天?

Bev*_*van 17

现在,您可以通过在最初对消息排队时指定 -1 秒的到期时间来为 Azure 存储队列消息选择无限 TTL。

消息的生存时间间隔,以秒为单位。在 2017-07-29 版本之前,允许的最长生存时间为 7 天。对于 2017-07-29 或更高版本,最大生存时间可以是任何正数,以及 -1 表示消息不会过期。如果省略此参数,则默认生存时间为 7 天。

https://docs.microsoft.com/en-us/rest/api/storageservices/put-message#uri-parameters

  • 这可能是一个更相关的链接?https://learn.microsoft.com/en-us/rest/api/storageservices/put-message#uri-parameters “指定消息的生存时间间隔(以秒为单位)。2017-07 版之前的版本29、允许的最大生存时间为7天,对于2017-07-29或更高版本,最大生存时间可以是任何正数,也可以是-1表示消息不会过期。如果省略此参数,则默认生存时间为 7 天。” (2认同)
  • 根据您用于添加队列消息的方法,某些方法(例如 CloudQueue AddMessageAsync)需要 TTL 类型为“TimeSpan”,因此您不能只提供 -1。在这种情况下,您可以使用“TimeSpan.MaxValue”获得功能等效的结果 (2认同)

New*_*ikh 5

是的,你理解正确。来自队列的消息会在 7 天内自动删除,并且没有所谓的“重新更新”。一旦插入队列存储,它将被自动删除并且无法恢复(也没有恢复工具)。