Всем привет. Есть задача: сделать один вызов в одну базу данных и другой вызов в другую базу данных. Над результатами сделать определенные действия.
Текущая реализация моя следующая:
Dao1 делает select запрос1.
Dao2 делает select запрос2.
Делаем обработку результатов двух запросов.
Хотелось бы запрос1 и запрос2 делать одновременно. Реализовал так:
@Async
public CompletableFuture<Response1> query1(){
return CompletableFuture.completedFuture(jdbcTemplate1.query(sql, , ))
}
@Async
public CompletableFuture<Response2> query2(){
return CompletableFuture.completedFuture(jdbcTemplate2.query(sql, , ))
}
Далее в коде:
CompletableFuture<Response1> response1Future = query1();
CompletableFuture<Response2> response2Future = query2();
CompletableFuture.allOf(response1Future, response2Future).join();
//
Насколько такой подход хорош или плохой? Хотелось бы узнать мнения опытных людей.!
Спасибо.!