Я хотел бы отправлять некоторые запросы и получать ответы с высокой частотой.
Мой код выглядит следующим образом:
Flux.fromIterable(params)
.delayElements(Duration.ofMillis(8))
.subscribe(
param -> {
webClient
.get()
.uri(prefix.concat(Utils.urlEncoder(param)))
.header("K1", "V1"))
.exchange()
.subscribe(clientResponse -> {
log.info("");
});
}
);
Код работает хорошо, а частота хорошая. Но когдаЯ пытаюсь изменить значение метода delayElements
(используйте Duration.ofMillis (4) ), я обнаружил некоторые исключения.
ERROR [reactor-http-nio-2] ContextHandler --- Error cannot be forwarded to user-facing Mono
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.io.IOException: Connection closed prematurely
Caused by: java.io.IOException: Connection closed prematurely
Код все еще может быть запущен, ноон породил некоторые исключения.
После этого я уменьшил значение до Duration.ofMillis (0) . Код почти не может быть выполнен. Моя консоль полна исключений.
Caused by: java.net.SocketException: Too many open files in system
Могу ли я сделать пропускную способность кода лучше?
8 мс достаточно, но если я могу увеличить частоту, это замечательно!Спасибо!