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