Я использую ning AsyncHttpClient
из программы командной строки. Мне нужно дождаться завершения всех запросов, чтобы я мог безопасно вызывать close()
на клиенте. Проблема в том, что я делаю много запросов из разных частей программы. Разделенный собственный код ниже, который показывает один сценарий, в котором я делаю вложенный HTTP-запрос из onCompleted
другого запроса:
final AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
Future<Response> f1 = asyncHttpClient.prepareGet(url).execute(
new AsyncCompletionHandler<Response>() {
public Response onCompleted(Response response)
throws Exception {
//Make more HTTP calls
Future f2 = asyncHttpClient.prepareGet(url).execute(...);
return response;
}
});
Это только пример кода. Реальный код более сложен и имеет гораздо больше HTTP-вызовов. Как лучше всего убедиться, что все вызовы завершены, прежде чем я позвоню close()
для клиента?