После получения SIGTERM я понимаю, что Node будет:
- Подождите, пока цикл событий станет пустым и весь асинхронный код завершится
- Выход с process.exit ()
У меня есть пара вопросов по этому поводу:
- Можно ли добавлять новые события в цикл событий после SIGTERM?
- Существует ли ограничение по времени для завершения всех вызванных событием вызовов функций? Что делать, если один звонок занимает часы? Звонит ли SIGTERM и SIGKILL?
- Если нет ограничения по времени и нет внешнего SIGKILL, можно ли быть уверенным, что он никогда не выйдет, пока выполняется функция?
- В соответствии с распространенными рекомендациями рекомендуется закрывать сокетные соединения (например, базу данных) при получении сигнала. Что если асинхронные операции зависят от открытых соединений? Скажем, один из них пишет в базу данных, например. Когда вы закрываете соединение с базой данных? После Сигкилл?