Я новичок в rxnetty. Я пытаюсь обработать ошибку retryWhen, но я застрял с оригинальным наблюдаемым, который подключен/будет подключаться к моему первому хосту. Есть ли способ перехода на другой сервер?- это возможность перехода на другой ресурс с помощью rxnetty после первого хоста.
0
A
ответ
0
Если вы используете 0.5.x, то для достижения этой цели вы можете использовать абстракцию балансировки нагрузки. Ниже пример демонстрирует способ сделать это (он использует повторение(), но вы можете заменить его retryWhen())
Если вы используете 0.4.x вы должны построить это себя на вершине RxNetty.
Благодарим за ответ. Предположим, что я создаю наблюдаемый o1, который будет подключаться к VIP v1, и я подписку на него наблюдателя ob1, после того, как он подписан, попытка подключения не удалась, я хочу повторить один раз, но для подключения к другому VIP v2 и все еще наблюдаемого одним и тем же наблюдателем ob1. Вот что я пробовал только сейчас. (a) В Func1 перешел в retryWhen, я создаю новый наблюдаемый o2 для подключения к VIP v2 и подписываю ob1 на o2. (b) в среднем, в то время как я возвращаю пустой наблюдаемый (flatmap Observable extends Throwable>), так что не будет повторения для o1. Но я все еще нахожусь в ужасе, как это решается? спасибо –
Следующее выше. Вот результат (1) на проводе, все правильно, 2 записи и 1 получено. (2) Наблюдатель получает onNext и OnCompleted уведомление, которое ХОРОШО (3) мой наблюдатель все еще получает вызов onError с исключением, которое является BAD. Как я могу остановить o1, чтобы испустить исключение? Спасибо –
Я попробовал альтернативный способ повторить попытку повторного VIP в лифте, который работает лучше (1) обрабатывает исключение IO в onError перед тем, как перейти в дочерний наблюдатель (2) Наблюдатель удобен, который передается параметром, чтобы он мог быть прикован к другому наблюдаемому. Не знаете, что такое побочный эффект, какие-либо рекомендации? Благодарю. –