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

Sas*_*sha 8 .net c# servicebus azure

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

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

但问题是我怎么知道订阅消息的列表已经/将被发送到?

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

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

Shi*_*iji 0

我首先要删除过滤功能。

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

每个订阅主题的订阅者都必须处理该主题的所有消息。即使他们这么说,他们也没有采取任何行动。

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