Чтобы сервис не падал, в uncaughtException добавили логирование и продолжение работы
process.on('uncaughtException', (err) => {
logger.error(err, 'необработанная ошибка, продолжаем');
});
Падения прекратились, но через какое-то время после таких ошибок часть запросов начинает зависать, а в базе появляются незавершённые операции. Какой подход правильный?
- Залогировать ошибку и завершить процесс — перезапустит оркестратор
- Оставить обработчик, но дополнительно очищать кэш после каждой ошибки
- Обернуть всё приложение в один try/catch вместо обработчика
- Перезапускать только упавший HTTP-сервер внутри процесса
