Mono<String>
. Есть основной метод, которому надо дождаться результатов выполнения обоих методов. Как запросить их параллельно, чтобы второй не ждал пока отработает первый?public class Test {
static Mono<String> getFromHttp() {
// не спеша запрашивает через HTTP
}
static Mono<String> getFromDb() {
// не спеша запрашивает DB
}
public static void main(String[] args) throws InterruptedException {
// Что тут надо написать чтобы:
// запросить getFromHttp()
// не дожидаясь ответа, запросить getFromDb()
// дождаться ответа обоих
// продолжить работу
}
}
public class Test {
static Mono<String> getFromHttp() {
return Mono.just("from HTTP").delayElement(Duration.ofSeconds(2));
}
static Mono<String> getFromDb() {
return Mono.just("from DB").delayElement(Duration.ofSeconds(1));
}
public static void main(String[] args) {
String fromHttp = "---";
String fromDb = "===";
long start = System.currentTimeMillis();
Mono<String> httpReq = getFromHttp();
Mono<String> dbReq = getFromDb();
Tuple2<String, String> values = Mono.zip(httpReq, dbReq).block();
fromHttp = values.getT1();
fromDb = values.getT2();
System.out.println(System.currentTimeMillis() - start);
System.out.println(fromHttp);
System.out.println(fromDb);
}
}