首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于特定条件的基于条件的骆驼路由

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

Stack Overflow用户
提问于 2018-10-26 03:40:48
回答 1查看 779关注 0票数 2

我正在根据某些条件动态地构建一条路线。例如,根据配置,from路由可以是quartz2或文件组件。这条路线的其他部分都是一样的。

文件组件路由

代码语言:javascript
复制
from(file://E:/Camel)
.setProperty("fileName", simple("${file:onlyname}"))
.process(camelprocessor)
.to(queue)
.log("Posted message to Queue");

Quartz2组件路由

代码语言:javascript
复制
from(quartz2://schedulername?cron=0+0/5+12-18+?+*+MON)
.pollEnrich(file://E:/Camel)
.setProperty("fileName", simple("${file:onlyname}"))
.process(camelprocessor)
.to(queue)
.log("Posted message to Queue");

正如您在上面的路线中所看到的,最后四条线对于这两条路线都是相同的。目前,我们正在直接组件的帮助下,将路由的from部分(timer或quartz2组件)连接到公共路由。

这是正确的做法吗?如果我们使用直接组件,会不会出现性能问题?

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

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

我很感谢你对上述的任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-26 06:55:22

您可以添加直接组件,并按您所说的从公共路由调用。据我所知,我建议不要使用pollenrich。

因为使用pollenrich,您无法处理所有文件,例如,pollenrich将能够一次处理10个实例。如果你需要处理超过10个文件,你不能。

而不是在路由中使用石英和文件组件。您可以将这两个端点相加为单个端点,

代码语言:javascript
复制
<from uri="file://pathto//yourfile?scheduler=quartz2&amp;antInclude=*.xml&amp;scheduler.cron={{schedularName.Scheduler}}"/>

我希望它能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53001074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档