【发布时间】:2014-06-30 21:01:22
【问题描述】:
Azure 服务总线死信队列中的消息是否过期?
一些解释
我有这些队列设置:
var queueDescription = new QueueDescription("MyTestQueue")
{
RequiresSession = false,
DefaultMessageTimeToLive = TimeSpan.FromMinutes(1),
EnableDeadLetteringOnMessageExpiration = true,
MaxDeliveryCount = 10
};
namespaceManager.CreateQueue(queueDescription);
当我将一些消息放入 Azure 服务总线消息队列(不是来自 Azure 存储的队列)并且(永远)不使用它们时,它们会自动移动到死信队列。
但是,如果我也没有死信队列的消费者,那么消息是否会从死信队列中删除,或者它们会永远留在那里? (是否有一些官方文档说明这应该如何工作?)
我的试炼
在我的试验中,我在队列中放置了 3 条消息。大约 2 分钟后,他们就死了。他们在死信队列中至少停留了一天,并且没有被删除。
虽然调用NamespaceManager.GetQueueAsync() 给了我上面的值(注意MessageCount 仍然是3 但DeadLetterMessageCount 奇怪的是0),我仍然可以从死信队列接收消息。 (所以他们没有从队列中删除。)
【问题讨论】:
标签: c# azure message-queue azureservicebus