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

Azure ServiceBus: wait until all subscribers processed a message

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

我需要给定消息 (Id) 等待所有处理程序完成其工作才能继续工作流程。当然,每个处理程序都会在完成时生成一条消息,我可以使用例如 Durable Function 来等待事件列表。

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

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

如果无法通过 ServiceBus 实现,是否有任何替代方法(除了使用 Pub/Sub 的自定义实现重新发明轮子)来实现这种情况?

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

创建几个与过滤器近似的主题(不是每个订阅者一个主题)。

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

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