如何在 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/