我正在根据某些条件动态地构建一条路线。例如,根据配置,from路由可以是quartz2或文件组件。这条路线的其他部分都是一样的。
文件组件路由
from(file://E:/Camel)
.setProperty("fileName", simple("${file:onlyname}"))
.process(camelprocessor)
.to(queue)
.log("Posted message to Queue");Quartz2组件路由
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组件)连接到公共路由。
这是正确的做法吗?如果我们使用直接组件,会不会出现性能问题?
我们正在考虑的其他选择是:
我很感谢你对上述的任何建议。
发布于 2018-10-26 06:55:22
您可以添加直接组件,并按您所说的从公共路由调用。据我所知,我建议不要使用pollenrich。
因为使用pollenrich,您无法处理所有文件,例如,pollenrich将能够一次处理10个实例。如果你需要处理超过10个文件,你不能。
而不是在路由中使用石英和文件组件。您可以将这两个端点相加为单个端点,
<from uri="file://pathto//yourfile?scheduler=quartz2&antInclude=*.xml&scheduler.cron={{schedularName.Scheduler}}"/>我希望它能帮到你。
https://stackoverflow.com/questions/53001074
复制相似问题