Azure请求 - 响应会话超时处理

时间:2016-07-05 17:17:52

标签: azure azureservicebus

我们正在使用azure服务总线来帮助通过工作人员监听队列来并行处理消息。

首先收到一条聚合消息,然后将此消息拆分为数千条通过请求 - 响应模式发布的单个消息,因为我们需要知道所有消息何时完成才能运行单独的进程。

我们的问题是请求 - 响应方法有一个超时,导致以下问题:

假设我们发布了1000条要处理的消息,并且只有一个工作人员在监听。超时到期后留在队列中的消息将被丢弃,这是我们不想要的。如果我们将到期时间设置为一个较大的值,以保证所有消息都将被处理,那么我们就会冒着消息失败的风险,并且必须等待超时才能理解出现了问题。

有没有办法动态更改请求 - 响应方案中的单个邮件的到期时间或我们应该考虑的任何其他模式?

谢谢!

1 个答案:

答案 0 :(得分:0)

你弄错了,天蓝色服务总线消息的生存时间https://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.timetolive.aspx如果消息被消耗,消息将在队列中出现的时间。

这不是超时,如果你发布一个有更长时间的消息,消息会在队列中停留很长时间,但是如果你没有消费,你应警告另一端你没有消耗这个信息。

您可以使用另一个队列执行此操作,并将另一条消息放在另一个队列中,并显示失败的消息ID和错误。

这是一个异步过程,因此您不应该基于此处持有请求,而是处理问题的异步性质。