0
私はいくつかのアドバイスが必要です。私は春のアプリケーションから、いくつかの非同期サービスを並行して呼び出す必要があります。つまり、コードは最も遅い非同期タスクと同じくらい遅くなければなりません。Springで非同期サービスの並列処理を実装する最良の方法
私は以下の方法でコード化しましたが、これが最良の方法であるかどうかはわかりません。おそらくxDではありません。実際、私はjava8のlambdaとストリームのものに慣れていないので、私は改善のポイントになる可能性があります。
`` `
@Service
@Qualifier("service1")
public class Service1 implements IService {
@Async("processExecutor")
public AsyncResult<MyResult> doStuff(Stuff input){
return new AsyncResult<Optional<MyResult>>(callStuff(input));
}
}
@Service
@Qualifier("service2")
public class Service2 implements IService {
@Async("processExecutor")
public AsyncResult<MyResult> doStuff(Stuff input){
return new AsyncResult<Optional<MyResult>>(callStuff(input));
}
}
@Service
@Qualifier("service3")
public class Service3 implements IService {
@Async("processExecutor")
public AsyncResult<MyResult> doStuff(Stuff input){
return new AsyncResult<Optional<MyResult>>(callStuff(input));
}
}
そして、他の春のサービスで私は、次のものを持っている:
` ``
AsyncResult<MyResult>aResult1=service1.doStuff(input);
AsyncResult<MyResult>aResult2=service2.doStuff(input);
AsyncResult<MyResult>aResult3=service3.doStuff(input);
MyResult result1= aResult1.get();
MyResult result2= aResult2.get();
MyResult result2= aResult3.get();
あなたは正しい方向に私を指すことになり、よろしければ?
ありがとうございます!
おかげで@chenjunラップするAsyncResultを使用する必要はありません!私は試してみるつもりだ! – Bringer