我的情况是,我计划创建一个具有多个(未知)订阅者的ServiceBus主题。他们可以使用主题过滤器,因此不会处理主题中的每条消息。
我需要给定的消息(Id),直到所有处理程序完成其工作才能继续工作流程。自然地,每个处理程序在完成时都会产生一条消息,例如,我可以使用“耐久功能”来等待事件列表。
但是问题是我如何知道已/将要发送到的订阅消息列表?
使用Microsoft.Azure.ServiceBus.Management.ManagementClient.GetSubscriptionsAsync()
,可以获取该主题的所有订阅的列表。但是我找不到如何根据过滤器评估是否会接收给定消息的方法。
如果使用ServiceBus无法做到这一点,是否有其他选择(除了通过自定义实现Pub / Sub重塑轮子之外)来实现这种情况?
答案 0 :(得分:0)
我将从删除过滤功能开始。
创建与过滤器近似的服务器主题(不是每个订户的主题)。
每个订阅主题的订阅者都必须处理该主题的所有消息。即使这么说,他们什么也没做。
然后,您知道谁订阅了每个主题,以及谁处理了每个主题的每条消息。