Как правильно слить все запросы с моего сервера node.js socketstream?

Я проверил документы SocketStream, но не могу найти ничего полезного.

Я нашел несколько полезных примеров Node общего назначения, которые, кажется, работают довольно хорошо, но не совсем. Поскольку мы используем socketstream, в дополнение к keep-alive, вполне возможно, что у нас есть сокеты, открытые в течение достаточно долгого времени - очевидно, я еще не измерял, или я мог бы сказать, как долго они у нас открыты, но я ожидаю в основном весь рабочий день, пока люди пользуются нашей платформой.

Мы подозреваем, что у нас есть некоторые ошибки в нашей системе из-за резкой природы выключения нашего сервера при обновлении, т.е. мы немедленно завершаем работу контейнера докера.

Мы пытаемся перенести это, чтобы истощить запросы с нашего сервера. Используя вышеупомянутый ответ здесь, похоже, я смогу сделать что-то вроде:

  • Слушай connect события на моем сервере и хранить сокеты
  • Слушай close события на этих сокетах и ​​удалить их из списка, когда они закрыты
  • отправить сигнал (например, SIGQUIT) на мой сервер
  • закрыть сервер, чтобы предотвратить любые новые входящие соединения
  • когда все сокеты закрыты, завершите процесс

Тем не менее, я хочу призвать любые удерживаемые розетки умереть. Если они не ждут ответа от сервера, я хочу иметь возможность убить их. Если это просто что-то вроде гнезда, ничего не делающего, я в порядке, убив его. Я просто не хочу убивать тот, где был отправлен запрос, и мы ждем ответа. В этом случае я хочу иметь возможность подождать, пока не будет дан текущий ответ, а затем уничтожить сокет.

Есть ли способ, которым я могу сделать что-то подобное, или мне просто нужно жить с потенциалом, что некоторые из этих связей будут в середине чего-то делать?

0 ответов

Другие вопросы по тегам