我现在的情况:
我目前有一个 Mule ESB 应用程序,它具有三个流,它们处理来自两个不同来源的消息,这三个流使用 VM 队列绑定在一起。
流程#1:
入站(端点 #1)->(执行消息处理和转换)-> 出站(端点 #3)
流程#2:
入站(端点 #2)->(执行消息处理和转换)-> 出站(端点 #3)
流#3
入站(端点 #3)->(执行消息处理和转换,做一些事情)-> 出站
问题/问题:
现在我想做的是引入第四个流,流#4,它从入站端点获取状态信息,并基于此信息能够防止流#3 被执行/阻止它处理其入站消息。
换句话说,我最理想的做法是让流#4 在 ESB 应用程序启动时运行(就像所有流似乎自动执行的那样),并根据它从入站消息中获得的状态信息,阻止/允许或启用/禁用 Flow #3 处理来自 Endpoint #3 的消息。
以下是我理想的要求:
要求:
- 必须能够单独通过 mule 流 XML 来完成,无需额外的 POJO/自定义 Java 对象。
- 流程 #4 必须在 ESB 应用程序启动时执行,并且只需要处理第一条入站消息。
- 理想情况下,我不希望 Flow #3 具有复合入站源,或者必须评估每个入站消息的某个全局变量的状态。
完成我想做的事情的最佳方法是什么?
如果没有真正好的解决方案,那么如果我必须省略 #3 要求,那么完成这样一个全局变量的最佳方法是什么,该变量在两个独立的流之间共享,这些流没有被某个出站 - > 入站端点绑定在一起XML 配置?我尝试过使用会话属性,但它们要求将流作为子流或端点绑定在一起。
谢谢。