我们有一个监听 Azure 服务总线队列的服务。我们有另一个服务来监听该队列的死信队列。我们还对部署后的 Azure 应用程序进行了一系列测试。
我们希望扩展我们的自动化测试,以便也测试处理死信的部分,但不确定如何编写测试来确保消息到达死信队列,就像在正常情况下一样消息不会是死信。
目前我们正在手动测试这一点,但我觉得这不是一个长期选择。
有什么想法吗?
最佳答案
根据服务总线docs ,如果将 EnableDeadLetteringOnMessageExpiration
设置为 true,则如果消息过期,它将进入死信队列。所以,你可以这样做:
var desc = new QueueDescription(QueueName);
desc.EnableDeadLetteringOnMessageExpiration = true;
desc.DefaultMessageTimeToLive = TimeSpan.FromSeconds(1); // one second is the min value
您可以通过等待 > 1 秒来进行测试,以确保消息进入死信队列。
编辑:您还可以通过执行receivedMessage.DeadLetter()
对收到的消息进行死信。这会自动将其放入死信队列中。
关于azure - 测试 Azure 死信服务总线队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201691/