Azure ServiceBus:等待所有订阅者处理完一条消息

时间:2019-12-23 14:55:34

标签: c# azure servicebus

我的情况是,我计划创建一个具有多个(未知)订阅者的ServiceBus主题。他们可以使用主题过滤器,因此不会处理主题中的每条消息。

我需要给定的消息(Id),直到所有处理程序完成其工作才能继续工作流程。自然地,每个处理程序在完成时都会产生一条消息,例如,我可以使用“耐久功能”来等待事件列表。

但是问题是我如何知道已/将要发送到的订阅消息列表?

使用Microsoft.Azure.ServiceBus.Management.ManagementClient.GetSubscriptionsAsync(),可以获取该主题的所有订阅的列表。但是我找不到如何根据过滤器评估是否会接收给定消息的方法。

如果使用ServiceBus无法做到这一点,是否有其他选择(除了通过自定义实现Pub / Sub重塑轮子之外)来实现这种情况?

1 个答案:

答案 0 :(得分:0)

我将从删除过滤功能开始。

创建与过滤器近似的服务器主题(不是每个订户的主题)。

每个订阅主题的订阅者都必须处理该主题的所有消息。即使这么说,他们什么也没做。

然后,您知道谁订阅了每个主题,以及谁处理了每个主题的每条消息。

相关问题