from("direct:A")
    .process(//processing here)
            .recipientList(//expression that return two recipients [direct:B, direct:C] )

from("direct:B")
    .process(//processing here)...


from("direct:C")
    .process(//processing here)...

.from("direct:A") behaves like a java method i.e the thread that calls it will continue to process().

So what will happen in above case ?

Let say Thread t1 calls from("direct:A") then

t1 will continue to process()

and then t1 will enter into recipientList()

Now from here on-wards will t1 call from("direct:B") and then call from("direct:C") synchronously

or

direct:b and direct:c will be called in two new thread asynchronously.

有帮助吗?

解决方案

Read the recipient list documentation for a lot more detail. By default it processes messages synchronously. You can use the parallel processing feature of the recipient list to run this concurrently. You can also define your own thread pools.

Go read the documentation it is in there.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top