play 2 を使用して、外部 API に対して複数の Web リクエストを作成したいと考えています。各 Web リクエストはpage
パラメータによって異なります。私のコードは次のとおりです。
static WSRequestHolder urlPaging = WS
.url("http://my_api")
.setQueryParameter("apiKey", "api_key")
.setQueryParameter("pageSize", "5")
.setQueryParameter("format", "json");
public static Result insertProducts() {
int totalPages = 83;
Logger.info("total pages: " + totalPages);
for (int currentPage = 1; currentPage < totalPages; currentPage++) {
Logger.info("--current page:" + currentPage);
result(currentPage);
}
return ok();
}
public static AsyncResult result(int currentPage) {
return async(urlPaging
.setQueryParameter("page", String.valueOf(currentPage)).get()
.map(new Function<WS.Response, Result>() {
public Result apply(WS.Response response) {
insertProductsFromPage(response);
return ok();
}
}));
}
ページ1では機能しますが、ページ2で内部エラーが発生するため、result
非同期リクエストメソッドを適切に構築していないと思われます。管理者からこれを実行しているため、これは本当に非同期である必要はないことに注意してください。これらのリクエストがすべて解析されるまで待機できますが、プレイ 2 で同期方法が見つかりませんでした。私が間違っていることを教えてください。