Spring реактивный веб-клиент отменяет текущий запрос при ошибке потокаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring реактивный веб-клиент отменяет текущий запрос при ошибке потока

Сообщение Anonymous »

У меня есть потоковая служба, которая передает клиентский запрос внешней службе с помощью WebClient, возвращая Flux из внешней службы клиенту.
Когда клиент отключается от моей службы, Я также хочу отключить WebClient от внешней службы. Как я могу этого добиться?
На данный момент я обнаружил, что когда клиент отключается, я получаю исключение IOException сломанного канала, которое я могу перехватить и выполнить обратный вызов, используя flux.doOnError( IOException.class, e -> {, но я не знаю, что добавить в обратный вызов, чтобы отменить текущий запрос.
Что я пробовал
Что я пробовал h3>
Я нашел Руководство GeeksForGeeks по отмене текущего потока из WebClient и его реализации следующим образом:

Код: Выделить всё

Flux flux = webClient.post()
.uri(uri)
.bodyValue(req)
.retrieve()
.bodyToFlux(String.class)
// some filters and maps
;
Disposable disposable = flux.subscribe();
return flux.doOnError(IOException.class, e -> disposable.dispose());
но это не сработало. Для тестирования я также попробовал сразу вызвать .dispose() и оставить клиента подключенным:

Код: Выделить всё

Flux flux = webClient.post()
.uri(uri)
.bodyValue(req)
.retrieve()
.bodyToFlux(String.class)
// some filters and maps
;
Disposable disposable = flux.subscribe();
disposable.dispose();
log.info("is disposed: {}", disposable.isDisposed());
return flux;
и журнал показал истину, но клиент продолжал получать данные.


Подробнее здесь: https://stackoverflow.com/questions/793 ... flux-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»