所以我的解决方案需要的模型如下:

我需要轮询数据库并根据结果,向数据库创建请求以获取更多数据,获取响应并将其传递给一组端口,基于提升的属性,只有一个端口会采取行动。

看起来像这样:

但是,如果您指定“Temp Out”,对于发送端口组,无论在每个端口上设置的过滤器如何,都会将消息发送到组中的所有端口。根据我的理解,这是预期的行为(请参阅此处)。

所以我探索了其他选项,例如使用SDK中的基于内容的路由(CBR示例)。您可以在此处查看此

我试过这个并完全删除了业务流程(它真的不需要)。但是,存在主要的路由/订阅错误,并且在进一步研究时,如果您有请求 - 响应端口,则看起来您不能这样做。有关此处<的一些文章/ A>。我几乎有同样的问题这个用户。

最后,我是否使用编排并不重要。但是,我需要一个解决方案,我可以将消息传递给多个发送端口,我只能有一个实际使用该消息并发送。这是必需的,这样我就可以轻松编辑和添加端口,而无需在编排中修改任何其他内容或硬代码决策。

有帮助吗?

解决方案 2

我发现CBR示例模型确实有效。路由的问题是订阅。如果我要将发送端口订阅到请求 - 响应端口,我必须设置BTS.SPName(发送端口名称)过滤器而不是BTS.ReceivePort过滤器。通过这样做,消息被正确过滤。你的回答也会有效,但它需要使用我试图避免的编排。

其他提示

您可以在业务流程的发送端口上使用直接绑定来重新注入消息进入消息框db。使用多个端口组,每个端口组可以直接订阅所需的消息类型并过滤提升的属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top