Я новичок в активной зоне реактора, в прошлом работал с Erlang.
Надеюсь, быстрый вопрос.
Допустим, мы отправили сообщение «А» и ожидаем ответа через x минут. Если ответ не приходит в течение x минут, мы запускаем резервную процедуру.
Это можно сделать с помощью Flux или Mono с таймаутом метода (продолжительность, откат)
public final Mono<T> timeout(Duration timeout,
Mono<? extends T> fallback)
Switch to a fallback Mono in case no item arrives within the given Duration.
If the fallback Mono is null, signal a TimeoutException instead.
Parameters:
timeout - the timeout before the onNext signal from this Mono
fallback - the fallback Mono to subscribe to when a timeout occurs
Returns:
a Mono that will fallback to a different Mono in case of timeout
Что произойдет, если JVM выйдет из строя и перезапустится?
Допустим, сбой и перезапуск занимает y минут (предположим, что y меньше x).
Знает ли активная зона реактора, что произошла авария? Может ли он перезапустить обработку потока, зная, что теперь ему нужно подождать (x-y) минут?
Я знаю, что Camunda хранит состояние в СУБД. Следовательно, возможно, он должен восстановиться после сбоя.