.lreads和parallelProcessing in camel

时间:2017-01-28 17:54:59

标签: apache-camel

路线:

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)并行运行,但调用线程(路由主线程)被调用,而线程(并行处理线程)仍在执行其工作。 这是不正确的。

如何处理这种情况,我可以在所有线程完成工作后调用调用者?

0 个答案:

没有答案