Мне нужно отправить несколько запросов на множество различных веб-сервисов и получить результаты. Проблема в том, что если я отправляю запросы один за другим, это занимает столько времени, сколько мне нужно отправлять и обрабатывать отдельно.
Мне интересно, как я могу сразу отправить все запросы и получить результаты.
Как показано в следующем коде, у меня есть три основных метода, каждый из которых имеет свои собственные вспомогательные методы. Каждый вспомогательный метод отправляет запрос на связанный с ним веб-сервис и получает результаты, поэтому, например, для получения результатов веб-службы 9 я должен дождаться завершения всех веб-сервисов от 1 до 8, для отправки требуется много времени все запросы один за другим и получать их результаты.
Как показалось, ни один из методов и под-методов не связан друг с другом, поэтому я могу вызывать их всех и получать их результаты в любом порядке, единственное, что важно, - это получать результаты каждого под-метода и заполнить связанные списки.
private List<StudentsResults> studentsResults = new ArrayList();
private List<DoctorsResults> doctorsResults = new ArrayList();
private List<PatientsResults> patientsResults = new ArrayList();
main (){
retrieveAllLists();
}
retrieveAllLists(){
retrieveStudents();
retrieveDoctors();
retrievePatients();
}
retrieveStudents(){
this.studentsResults = retrieveStdWS1(); //send request to Web Service 1 to receive its list of students
this.studentsResults = retrieveStdWS2(); //send request to Web Service 2 to receive its list of students
this.studentsResults = retrieveStdWS3(); //send request to Web Service 3 to receive its list of students
}
retrieveDoctors(){
this.doctorsResults = retrieveDocWS4(); //send request to Web Service 4 to receive its list of doctors
this.doctorsResults = retrieveDocWS5(); //send request to Web Service 5 to receive its list of doctors
this.doctorsResults = retrieveDocWS6(); //send request to Web Service 6 to receive its list of doctors
}
retrievePatients(){
this.patientsResults = retrievePtWS7(); //send request to Web Service 7 to receive its list of patients
this.patientsResults = retrievePtWS8(); //send request to Web Service 8 to receive its list of patients
this.patientsResults = retrievePtWS9(); //send request to Web Service 9 to receive its list of patients
}