0

我在骡子服务中有这个要求,只有当业务条件成立时,它才应该从入站连接器(流消息源)消费。我需要查看数据库该条件是否成立,然后只有我的入站连接器应该开始使用。每次它应该检查该条件并仅在条件为真时使用。建议在 mule 中实现实施的最佳方法。

4

3 回答 3

0

这通常使用消息过滤器集成模式来完成。

eip

这种模式在 Mule 中实现为(并且仅作为)过滤器,其他可以解决问题的模式,特别是路由器和绕道,但更一致的方式是使用过滤器。

在 Mule 的情况下,您有许多过滤器,但是没有现成的基于 sql 查询的过滤器。这说。您有多种选择:

  • java中的过滤器,您可以将其实例化为注入数据源的spring bean,然后用作带有ar ref的自定义过滤器。
  • 如果这意味着可重用,请作为DevKit模块实现。
  • 作为一种解决方法,实现一个子流,该子流利用数据库连接器来获取查询结果,然后在流的末尾使用表达式过滤器进行过滤或不过滤。
于 2015-01-04T16:33:36.063 回答
0

尽管消息过滤器在理论上是正确的,但实际上这通常是使用数据库连接器和 SELECT 查询来完成的,该查询确定应在其 WHERE 子句中处理哪些行。您可以将查询放在<poll></poll>流开头的元素中,以按计划执行查询,如此处的第二个示例所示

于 2015-01-04T23:10:27.273 回答
0

如果不查看您的流程到底要实现什么,这很难说.. 通常,如果您希望您的入站端点使用并且流程工作,最好的选择是在将检查的入站端点之后放置一个消息过滤器条件并允许消息传递给下一个处理器..

由于在这里您要检查数据库中的条件,因此您需要在入站端点之后放置一个数据库组件,该端点将从数据库中获取业务条件的值,然后您可以将消息过滤器选择路由器放置到将消息负载传递给下一个Mule 组件

于 2015-01-03T05:46:29.977 回答