作者:性感然小猫儿丿 | 来源:互联网 | 2023-09-16 22:33
我的java / camel应用程序中有两种类型的任务/事件(type_A和type_B),可以使用同一代码块同时执行witch。但是同时,每种任务的类型都应一致执行(如果type_A现在正在执行,则type_A的下一个任务应等待)。
换句话说,我想写骆驼路线,女巫将是这个代码的比喻:
synchronized(taksType.intern()){
..
// taksType - String literal like "type_A" or "type_B"
// some operations
...
}
我认为骆驼路线应该看起来像这样,但是我不知道如何为具体类型的任务分配一个线程(在线程池中)。
from("direct:eventsource")
.process(...)
.split(splitByType()).threads(2,2,"threadName")
.to("direct:concurrentBlock")
任何帮助将不胜感激
您可以通过seda使用内存中的队列,并将拆分器发送到seda:a或seda:b。然后,您可以有两条路线,一条从seda:a开始,另一条从seda:b开始。它们并行运行,但是A仅1个线程,B仅1个线程