我已经实现了写入队列的Web角色。这工作正常。然后我开发了一个Worker角色来从队列中读取。当我从本地机器以调试模式运行它时,它会从队列中读取消息,但是当我部署Worker角色时,它似乎正在读取队列,因为消息最终会在死信队列中结束。有谁知道这可能导致什么行为?下面是一些可能是解决这个问题的关键
queueClient = QueueClient.Create(queueName, ReceiveMode.PeekLock);
var queueDescription = new QueueDescription(QueueName)
{
RequiresSession = false,
DefaultMessageTimeToLive = TimeSpan.FromMinutes(2),
EnableDeadLetteringOnMessageExpiration = true,
MaxDeliveryCount = 20
};
答案 0 :(得分:1)
将QueueDescription.DefaultmessageTimeToLive增加到约10分钟。
此属性指示消息在队列中应存在多长时间 - 在处理之前(调用Message.Complete())。如果它在队列中保留超过2分钟 - 它将自动移动到DeadLetterQueue(因为你将Set EnableDeadLetteringOnMsgExp设置为true)。
TTL在这些消息传递方案中很有用
所以 - 为了安全起见,DefaultMsgTTL的值会高一些。
希望它有帮助! SREE