带动态URI的pollEnrich及其执行次数

我想基于系统的主机名和其他逻辑来监听activeMQ主题。我计划为此使用open,high,low,close,以便评估自己的逻辑并在pollEnrich中提供主题名称,但在as per document中提供

  

pollEnrichpollEnrich不会从当前Exchange访问任何数据,这意味着在轮询时它无法使用您可能已在Exchange上设置的任何现有标头。例如,您不能在enrich标头中设置文件名,而只能使用Exchange.FILE_NAME来使用该文件。为此,您必须在端点URI中设置文件名。

我该怎么解决

pollEnrich

请不要建议直接在URI中使用主机名。正如我强调的那样,我也必须计算其他逻辑。

  • 我还能使用什么其他选项或方式?
  • pollEnrich是否会继续关注主题,否则它将只听一次并结束路由?

更新1: 我发现我们可以对动态URI使用简单的表达式,但是pollEnrich的一个问题是它只选择一条消息,如何确保它以消费者身份继续监听?我希望在pollEnrich部分执行一次之前,TopicListener一直监听直到应用程序启动为止。

xiaoheige2008 回答:带动态URI的pollEnrich及其执行次数

  

pollEnrich会继续听话题还是会听一次并结束路线?

与您发现的事实相同,骆驼pollEnrich组件将侦听主题,并且每次调用最多消耗一条消息。

  

我还能使用什么其他选项或方式?

  1. 通过pollEnrich重复loop
  2. 在运行时通过routeBuilder创建新路线

选项1天真,但概念简单。 pollEnrich将执行一次,而loop将重复执行一次。但是,此方法需要处理的场景比您预期的要多。

选项2是更好的方法。您在运行时创建路由,并且消费者端点URI通过变量传递。也就是说,您可以在计算逻辑之后动态创建使用者路径。

Example for routeBuilder

本文链接:https://www.f2er.com/3165224.html

大家都在问