gpt4 book ai didi

c# - Azure 服务总线中的死信队列中的消息是否会过期?

转载 作者:太空狗 更新时间:2023-10-29 18:22:10 26 4
gpt4 key购买 nike

Azure 服务总线中的死信队列中的消息是否会过期?

一些解释

我有这些队列设置:

var queueDescription = new QueueDescription("MyTestQueue")
{
RequiresSession = false,
DefaultMessageTimeToLive = TimeSpan.FromMinutes(1),
EnableDeadLetteringOnMessageExpiration = true,
MaxDeliveryCount = 10
};

namespaceManager.CreateQueue(queueDescription);

当我将一些消息放入 Azure 服务总线消息队列(不是来自 Azure 存储的队列)并且不使用它们(永远)时,它们将自动移至死信队列。

但是,如果我也没有死信队列的使用者,消息是否会从死信队列中删除,还是会永远留在那里? (是否有一些官方文档说明这应该如何工作?)

我的试验

在我的试验中,我在队列中放置了 3 条消息。大约两分钟后,他们就变成了死信。它们在死信队列中保留了至少一天并且没有被删除。

Message Queue Statistics

虽然打电话NamespaceManager.GetQueueAsync()给了我上面的值(注意 MessageCount 仍然是 3DeadLetterMessageCount 奇怪的是 0),我仍然可以从死信队列接收消息。 (所以它们没有从队列中删除。)

最佳答案

塞巴斯蒂安(Sebastian)您的观察是正确的,消息一旦放入死信子队列就永远不会过期。它们将永远可用,直到从死信子队列中明确删除。在上述关于工具/api 的错误中,可能是刷新问题?需要在消息成为死信之后调用 GetQueueAsync(),这不是确定性时间,假设您有一个队列,其中包含一千条已过期的消息,但该队列未被使用(发送/接收操作) ) 那么计数可能仍会返回为“事件”状态,直到执行某些操作为止。

关于c# - Azure 服务总线中的死信队列中的消息是否会过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23626995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com