下面的测试代码不起作用
from("direct:start").setExchangePattern(ExchangePattern.InOnly).threads(5).delay(2000).bean(MessageHeaderValidator.class);
尽管seda是替代方法,但请参考Camel seda document。建议改用直接端点。
线程池
请注意,通过执行以下操作将线程池添加到SEDA端点:
from("seda:stageName").thread(5).process(...)
可以结束两个BlockQueue:一个来自SEDA端点,一个来自线程池的工作队列,这可能不是您想要的,相反,您可能希望配置一个带有线程池的Direct端点,该线程池可以处理消息同步和异步。例如:
from("direct:stageName").thread(5).process(...)
您还可以直接配置在SEDA端点上处理消息的线程数
使用parallelConsumers选项。
最佳答案
对于并行处理,请将Camel的SEDA组件与concurrentConsumers
选项一起使用:
from("seda:stageName?concurrentConsumers=5")
.process(...);