Mule:仅在满足业务要求时才使用入站连接器

时间:2015-01-03 03:50:59

标签: mule mule-studio mule-component

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

3 个答案:

答案 0 :(得分:0)

如果不查看您的流程究竟要实现什么,这是很难说的。通常,如果您希望入站端点使用并且流程可以正常工作,那么最好的选择是设置消息过滤器< / strong>在入站端点之后检查条件并允许消息传递给下一个处理器 ..

由于您要在此处检查数据库中的条件,因此您需要将数据库组件放在入站端点之后,该端点将从数据库中获取业务条件的值,然后您可以将邮件过滤器选择路由器邮件有效负载传递给下一个骡子组件

答案 1 :(得分:0)

这是使用message filter integration pattern完成的。

eip

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

对于Mule,您有许多过滤器,但是没有开箱即用的基于sql查询的过滤器。这说。您有很多选择:

  • java中的Filter,您可以将其实例化为注入数据源的spring bean,然后将其用作带有ar ref的custom filter
  • 如果这是可重用的,请实现为DevKit模块。
  • 作为一种解决方法,实现利用数据库连接器获取查询结果的子流,然后使用表达式过滤器在流的末尾过滤或不过滤。

答案 2 :(得分:0)

虽然消息过滤器在理论上是正确的,但实际上这通常使用带有SELECT查询的Database Connector来完成,该查询确定应在其WHERE子句中处理哪些行。您可以将查询放在流程开头的<poll></poll>元素中,以按计划执行查询,如second example here所示。