Коренные причины. Я понимаю, почему происходит отмена, потому что
- Таймауты: если вы используете .timeout(), отмена произойдет, если истечет таймаут.
- Ручное удаление: если вы вызываете .dispose() или .cancel() в подписке.
- Завершение работы приложения: если приложение или поток остановлены.
- Обратное давление: если нисходящий поток отменяется из-за ограничений ресурсов.
Это сложный код, в котором вызываются несколько библиотечных методов, поэтому его не так просто отследить через код. Отмена происходит только в нашей производственной среде и ни в каких других средах. Нашим главным подозреваемым являются ограничения ресурсов и памяти.
Но есть ли способ отследить основную причину сигнала отмены, например, какой метод или операция вызвали это?
Я не уверен, что использование Hooks.onOperatorDebug() будет разумным.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ype-cancel
Мобильная версия