У меня есть цепочка Reactor, которая вызывает синхронизированный метод, как показано ниже. Всякий раз, когда истекает срок действия токена аутентификации, мне нужно отправить запрос на сервер для получения нового токена, а получение нового токена нужно вызывать только один раз, поскольку одновременно может быть активным несколько запросов. По этой причине updateToken() синхронизируется. Дело в том, что replaceToken вызывается из потоков Netty NIO. Это вызывает какие-либо проблемы? Как Reactor вызывает синхронизированный метод?
Я не смог найти никаких упоминаний об этом в официальной документации.
Mono process(Request request) {
Header header = getHeader(); //use authString
reactorHttpClient.get().uri(request.uri()).header(header)
.onErrorResume(InvalidAuthException.class, () -> {
//get new token from server and retry
refreshToken();
})
}
synchronized void refreshToken() {
//send request to server and get token and update the mutable state authString
authString = response.getToken();
}
Подробнее здесь: https://stackoverflow.com/questions/782 ... ct-reactor
Вызов синхронизированного метода в Project Reactor ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение