c# - 毒物队列的到期日期

标签 c# azure-storage-queues

如何在 Azure 存储队列中将毒队列消息到期日期期限更改为最大值以及 目前默认过期时间为 7 天。

最佳答案

据我所知,Azure Queue 消息的最长允许过期时间为 7 天,这也是默认值。

毒药队列也是一个名为{original-queue-name}-poison 的普通队列。例如,如果 Azure Webjobs SDK 处理超过最大尝试次数的队列消息,则相关消息将被移至有害队列,并且此过程由 SDK 处理。

据我了解,您需要显式处理有害消息,而不是将消息永久存储到有害队列中。详情可关注How to handle poison messages .此外,您可以选择其他消息队列服务来满足您的要求。


更新:

作为changelog.txt关于 9.0.0 的变化:

Queues: Added support for infinite TTL on queue messages.

您可以在添加队列消息时指定timeToLive参数,如下所示:

queue.AddMessage(new CloudQueueMessage($"hello world-{DateTime.UtcNow}"),timeToLive:TimeSpan.MaxValue);

根据您的要求,您可以使用手动毒消息处理方法来检查 dequeueCount 并以编程方式将当前队列消息显式添加到毒队列中。

注意:队列消息发送到毒队列之前的最大重试次数默认为 5 次,您可以通过 config.Queues.MaxDequeueCount 更改它。

或者您只是利用自动毒消息处理,然后您可以触发相关的毒队列并将队列消息添加到具有无限 TTL 的自定义毒队列中。

关于c# - 毒物队列的到期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50303298/

相关文章:

c# - 订阅后事件触发

c# - Xamarin Forms - 如何创建自定义渲染以为 TableSection 提供默认的 iOS 页脚?

c# - 带花括号的 String.Format

azure-functions - 使用多个 Azure Functions QueueTriggers 监听同一个存储队列

azure-service-fabric - Azure Service Fabric - 当消息到达 Azure 存储队列时触发服务/Actor

c# - Azure Web 作业 : Can't bind Queue to type 'System.String'

c# - WPF 窗口在启动时抛出 TypeInitializationException

c# - Expander IsExpanded 绑定(bind)

Azure Web 作业 - 来自队列的并行消息处理无法正常工作