from(routeA)
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
//Point X
int requestId = logRequestToDatabase(exchange.getIn().getBody(String.class));
// need to use this requestId at point Y and Z..
}
})
.wireTap(routeT)
.to(routeB)
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
//Point Y
// i need the requestId from X here to mark it to log the response to database...
}
});
from(routeT)
.to(routeC)
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
//Point Z
// i need the requestId from X here to mark it to log the response to database...
}
});
我需要Point X是异步的。我希望点X中显示的requestId
在Y和Z中可用。这是因为,记录到数据库需要时间,我希望它是异步的,这样它就不会影响性能。
请帮帮我。
答案 0 :(得分:1)
我假设logRequestToDatabase是一个方法,因此您可以在该方法中实现代码以运行异步,因此Camel流程方法可以继续。如果Y和Z点需要访问logRequestToDatabase调用的结果,那么可以使用JDK Future。