2

私は 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 を宣言することはできません)。

4

1 に答える 1