84.7. 例
以下のルートでは、Disruptor を使用してこの非同期キューにリクエストを送信し、別のスレッドでさらに処理するためにファイアアンドフォーゲットメッセージを送信し、このスレッドで一定の応答を元の呼び出し元に返すことができるようにします。
public void configure() throws Exception { from("direct:start") // send it to the disruptor that is async .to("disruptor:next") // return a constant response .transform(constant("OK")); from("disruptor:next").to("mock:result"); }
public void configure() throws Exception {
from("direct:start")
// send it to the disruptor that is async
.to("disruptor:next")
// return a constant response
.transform(constant("OK"));
from("disruptor:next").to("mock:result");
}
Hello World メッセージを送信し、応答が OK であることを期待します。
Object out = template.requestBody("direct:start", "Hello World"); assertEquals("OK", out);
Object out = template.requestBody("direct:start", "Hello World");
assertEquals("OK", out);
Hello World メッセージは、さらに処理するために別のスレッドの Disruptor から消費されます。これは単体テストからのものであるため、単体テストでアサーションを実行できる mock エンドポイントに送信されます。