路线:
ExecutorService executorService = new ThreadPoolBuilder(context).poolSize(10).maxQueueSize(100).build("myCustom-Thread");
from("direct:myROute")
.aggregate(myAggregationStrategy).constant(true)
.threads().executorService(executorService)
//.parallelProcessing().executorService(executorService)
.process(myProcessor)
.end();
我正在尝试处理处理器逻辑以在多线程中运行,但是在camel的可用选项中我对下面的行为感到困惑
将.threads与executorService一起使用 虽然它根据executorService配置获得了10个线程,但所有线程都是逐个运行的。这给了我与单线程相同的行为,同时也降低了性能
将.parallelProcessing与executorService一起使用 所有线程(10)并行运行,但调用线程(路由主线程)被调用,而线程(并行处理线程)仍在执行其工作。 这是不正确的。
如何处理这种情况,我可以在所有线程完成工作后调用调用者?