Как правильно слить все запросы с моего сервера node.js socketstream?
Я проверил документы SocketStream, но не могу найти ничего полезного.
Я нашел несколько полезных примеров Node общего назначения, которые, кажется, работают довольно хорошо, но не совсем. Поскольку мы используем socketstream, в дополнение к keep-alive, вполне возможно, что у нас есть сокеты, открытые в течение достаточно долгого времени - очевидно, я еще не измерял, или я мог бы сказать, как долго они у нас открыты, но я ожидаю в основном весь рабочий день, пока люди пользуются нашей платформой.
Мы подозреваем, что у нас есть некоторые ошибки в нашей системе из-за резкой природы выключения нашего сервера при обновлении, т.е. мы немедленно завершаем работу контейнера докера.
Мы пытаемся перенести это, чтобы истощить запросы с нашего сервера. Используя вышеупомянутый ответ здесь, похоже, я смогу сделать что-то вроде:
- Слушай
connect
события на моем сервере и хранить сокеты - Слушай
close
события на этих сокетах и удалить их из списка, когда они закрыты - отправить сигнал (например, SIGQUIT) на мой сервер
- закрыть сервер, чтобы предотвратить любые новые входящие соединения
- когда все сокеты закрыты, завершите процесс
Тем не менее, я хочу призвать любые удерживаемые розетки умереть. Если они не ждут ответа от сервера, я хочу иметь возможность убить их. Если это просто что-то вроде гнезда, ничего не делающего, я в порядке, убив его. Я просто не хочу убивать тот, где был отправлен запрос, и мы ждем ответа. В этом случае я хочу иметь возможность подождать, пока не будет дан текущий ответ, а затем уничтожить сокет.
Есть ли способ, которым я могу сделать что-то подобное, или мне просто нужно жить с потенциалом, что некоторые из этих связей будут в середине чего-то делать?