基于特定条件的基于条件的骆驼路由

时间:2018-10-26 03:40:48

标签: java apache-camel quartz-scheduler

我正在根据某些条件动态构建路线。例如,基于配置,起始路径可以是quartz2或文件组件。 路线的所有其他部分都相同。

文件组件路由

<select name="fm_multiple" multiple="">
    <option value="One">One</option>
    <option value="Two">Two</option>
    <option value="Three" SELECTED>Three</option>
    <option value=""></option>
</select>

Quartz2组件路由

from(file://E:/Camel)
.setProperty("fileName", simple("${file:onlyname}"))
.process(camelprocessor)
.to(queue)
.log("Posted message to Queue");

如您在上述路线中看到的,两条路线的最后四行相同。 当前,我们在直接组件的帮助下将路由的一部分(计时器或石英2组件)连接到通用路由。

这是正确的方法吗?如果使用直接组件,会不会有性能问题?

我们正在考虑的其他选择是:

  1. 在两个路由中都复制该路由的公共部分。
  2. 使用基于内容的路由,但不确定如何使用条件 来自组件本身。

对于上述建议,我表示感谢。

1 个答案:

答案 0 :(得分:1)

您可以按照说明添加直接组件并从通用路由进行呼叫。就我所知,我建议不要使用花粉。

由于使用pollenrich,您无法一次处理所有文件(例如,pollenrich一次可以处理10个实例)。如果您需要处理10个以上的文件,则不需要。

而不是在路径中使用石英和文件组件。您可以像这样将两者加为一个端点,

<from uri="file://pathto//yourfile?scheduler=quartz2&amp;antInclude=*.xml&amp;scheduler.cron={{schedularName.Scheduler}}"/>

希望对您有帮助。

相关问题