テストシナリオで AsyncProcessor を使用しようとしましたが、ルートを介して実行されるメッセージは 1 つだけであると予想していましたが、2 つあるようです。
ログに
Test0
Test1
なぜ2つのメッセージがあるのですか?
from("quartz:test?trigger.repeatCount=1&trigger.repeatInterval=100").setBody(simple("Test"))
.process(new AsyncProcessor() {
private volatile int i;
public void process(Exchange exchange) throws Exception {
AsyncProcessorHelper.process(this, exchange);
}
public boolean process(final Exchange exchange, final AsyncCallback callback) {
new Thread(new Runnable() {
public void run() {
exchange.getOut().setBody(exchange.getIn().getBody(String.class) + (i++), String.class);
callback.done(false);
}
}).start();
return false;
}
})
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
org.slf4j.LoggerFactory.getLogger(Tests.class).info(exchange.getIn().getBody(String.class));
}
});