Azure 队列最大 TTL

Azure queue max TTL

也许有人可以解释为什么 Azure 队列的最大 TTL 为 7 天?

我习惯于使用 NServicebus,其中事件(消息)将成为业务流程的重要组成部分,当然这可能永远不会被删除。我真的很喜欢队列为我提供可靠通信的方式,事件最终将在独立应用程序中处理。

那么为什么 MS 有这个最长保留期?为什么是 7 天,因为它是整整一周?我真的很想了解他们的原因。我知道我可以创建一个队列触发器并将它们存储在其他地方。

另请阅读此反馈投票以更改此内容。 https://feedback.azure.com/forums/217298-storage/suggestions/4134167-infinite-ttl-for-queue-messages?category_id=69698

编辑:现在已经用 WindowsAzure.Storage 的新版本进行了更改。这比较了新旧行为。

        //WindowsAzure.Storage 8.7
        queue.AddMessage(message); // TTL is 7 days
        queue.AddMessage(message, TimeSpan.MaxValue); // Throws The argument 'timeToLive' is larger than maximum of '7.00:00:00'

        //WindowsAzure.Storage 9.0
        queue.AddMessage(message); // TTL is 7 days
        queue.AddMessage(message, TimeSpan.MaxValue); //Expiration Time is now 31.dec 9999

看起来这个限制已经被新的 C# Storage SDK V9.0.0 移除了,它使用新的 REST API 版本,尽管我无法在任何地方或任何地方找到对这些 REST API 的任何引用在存储博客上。 https://github.com/Azure/azure-storage-net/blob/master/changelog.txt

我已经测试过了,可以和Storage SDK V9.0.0一起使用,TTL可以是无限的。