私は Java で Play 2.1 コントローラーを使用しており、外部 Web サービスを呼び出してデータを取得する必要があります。次に、このデータ結果を使用して、最初の Web サービス呼び出しからの n 個の結果に対応する n 回の呼び出しで別の Web サービスを呼び出す必要があります。
パフォーマンスの問題については、promise を使用して別のスレッドで n 回の呼び出しを行いたいと考えています。
したがって、次のようなループがあります。
List<String> firstResults = WS.url("http://...") ///...blablabla
for(String keyword : firstResults){
Promise<ResultType> promise = play.libs.Akka.future(
new Callable<ResultType>() {
public Integer call() {
return //...
}
}
);}
n 個のプロミスを同期し、非同期 API を使用して結果を 1 つの応答 (すべての結果のリスト) に減らし、すべての呼び出しが終了したときにのみ http 応答を返すにはどうすればよいですか?
呼び出しの数を知ることができないと、問題がより難しくなります... (promise1、promise2 などの promise を宣言することはできません)。