0
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")Java メソッドのように動作します。つまり、それを呼び出すスレッドは継続しprocess()ます。

では、上記の場合はどうなるでしょうか?

スレッドが次に t1呼び出すとしましょうfrom("direct:A")

t1これからもprocess()

そしてt1入りますrecipientList()

ここから、wards がt1呼び出さfrom("direct:B")れ、from("direct:C")同期的に呼び出されます

また

direct:bdirect:c2 つの新しいスレッドで非同期に呼び出されます。

4

1 に答える 1

0

詳細については、受信者リストのドキュメントを参照してください。デフォルトでは、メッセージを同期的に処理します。受信者リストの並列処理機能を使用して、これを同時に実行できます。独自のスレッド プールを定義することもできます。

そこにあるドキュメントを読んでください。

于 2013-11-06T20:47:49.570 に答える