Apache camel camel路由中的concurrentConsumers共享同一线程池

Apache camel camel路由中的concurrentConsumers共享同一线程池,apache-camel,Apache Camel,考虑到我有以下路线: from('activemq:queue:myQueue?concurrentConsumers=10'). ..... from('seda:mySedaQueue?concurrentConsumers=10'). ..... 如何使它们共享相同的线程池。这是可能的吗?这是不可能的,因为当您将concurrentConsumers与SEDA一起使用时,他们有一个您指定的固定大小的私有线程池,例如在您的情况下是10。然后,所有10个线程都处于活动状态,并轮询要处理的新

考虑到我有以下路线:

from('activemq:queue:myQueue?concurrentConsumers=10').
.....

from('seda:mySedaQueue?concurrentConsumers=10').
.....

如何使它们共享相同的
线程池
。这是可能的吗?

这是不可能的,因为当您将concurrentConsumers与SEDA一起使用时,他们有一个您指定的固定大小的私有线程池,例如在您的情况下是10。然后,所有10个线程都处于活动状态,并轮询要处理的新消息

这是出于设计,因为共享线程池没有意义/没有任何好处。由于线程始终处于活动状态,因此线程不会返回池中。

来自(“直接:队列”)。线程(10)


它共享默认线程池

查看它。回答得好。无论如何,我需要有两个seda:队列和多个线程。我需要他们共享同一个线程池。我发现,从(“seda:queue”).threads(10).来看,这种构造并不好,因为它们“可能会以两个块队列结束:一个来自seda端点,另一个来自线程池的工作队列”(citate)。你有什么建议?你为什么要共用游泳池?由于线程不能被共享/重用?考虑我有2种类型的数据来分析-文本数据和二进制数据。两者都由不同的逻辑处理。数据分析是CPU密集型任务。因为我要尽可能多地利用CPU,所以我宁愿使用共享线程池,使用availableProcessors()值计算一些线程数。我需要线程被重用。