【发布时间】:2018-04-08 17:35:22
【问题描述】:
我在 mule 服务中有这个要求,只有当业务条件成立时,它才应该从入站连接器(流消息源)消费。我需要查看数据库该条件是否成立,然后只有我的入站连接器应该开始消费。每次它应该检查该条件并仅在条件为真时消费。建议在 mule 中实现实施的最佳方法。
【问题讨论】:
标签: mule mule-studio mule-component
我在 mule 服务中有这个要求,只有当业务条件成立时,它才应该从入站连接器(流消息源)消费。我需要查看数据库该条件是否成立,然后只有我的入站连接器应该开始消费。每次它应该检查该条件并仅在条件为真时消费。建议在 mule 中实现实施的最佳方法。
【问题讨论】:
标签: mule mule-studio mule-component
虽然消息过滤器在理论上是正确的,但实际上这通常是使用Database Connector 和 SELECT 查询来完成的,该查询确定应在其 WHERE 子句中处理哪些行。您可以将查询放在流开头的<poll></poll> 元素中,以按计划执行查询,如second example here 中所示。
【讨论】:
如果不查看您的流程您想要实现的确切内容,这很难说.. 通常,如果您希望您的入站端点消费并且流程工作,最好的选择是放置一个 消息过滤器 在 入站端点 之后,它将检查条件并允许 消息 传递到 下一个处理器..
由于您想从数据库中检查条件,您需要在入站端点之后放置一个数据库组件,该端点将从数据库中获取业务条件的值,然后您可以放置 消息过滤器或选择路由器将消息负载传递给下一个Mule组件
【讨论】:
这通常使用message filter integration pattern 完成。
这个模式在 Mule 中被实现为(并且仅作为)过滤器,其他可以解决问题的模式,特别是路由器和绕道,但更一致的方式是使用过滤器。
在 Mule 的情况下,您有许多过滤器,但是没有现成的基于 sql 查询的过滤器。这说。您有多种选择:
【讨论】: