如何将消息多次发送到同一组路由并在不同线程上以异步方式同时执行?

How to send messages to same set of routes multiple times and execute it in async fashion on different threads concurrently?

我有一种情况,我们需要多次向同一路由发送消息,该路由将 运行 无限地发送,例如,

from(file://configuration.txt)
.bean(parseToList.class)
.split(body()) // each iteration will have different config data
.to(route://xyz)
.end()


//this will run indefinetly 
from(direct://xyz)
.to(sql:fetch query dynamically based on data)
.choice().when().simple(roucount>0).to(file://destination)
.sleep(3000)
.to(direct://xyz)

我需要 direct:XYZ 应该为不同线程上的每条消息调用并且应该 运行 永远。如何在骆驼中实现这一目标?

编辑 1: 我得到了使用 seda: 而不是 direct 来启用异步功能的建议。但是我还需要路由是事务性的,那么有什么建议可以实现异步和事务性路由吗?

我认为您正在寻找的东西可以通过 SEDA component. direct: component is synchronous but SEDA provides async behaviour. Additionally checkout samples in Camel Examples 存储库实现。