Ваш сервер может обслуживать многие тысячи одновременных запросов, если все правильно закодировано и не потребляет много ресурсов процессора, просто ожидает сетевых ответов. Это то, в чем node.js особенно хорош.
Один браузер, однако, будет отправлять только несколько запросов за раз (это зависит от браузера) к одной и той же конечной точке (ставить другие в очередь до более ранней версии). Фини sh). Итак, я думаю, что вы пытаетесь проверить это из одного браузера. Это не собирается проверять то, что вы действительно хотите проверить, потому что сам браузер ограничивает количество одновременных запросов. node.js особенно хорош при большом количестве запросов в полете одновременно. Это может легко сделать тысячи.
Но, если у вас действительно есть операция, которая занимает до 5 минут, это, вероятно, даже не сработает для http-запроса от браузера, потому что браузер, вероятно, истечет время ожидания неактивного Соединение все еще ждет результата.
Я могу придумать пару возможных решений:
Во-первых, вы могли бы сделать первый запрос http, чтобы просто запустить процесс и немедленно вернуть его с помощью Я БЫ. Затем клиент может проверять каждые 30 секунд, после чего отправляет идентификатор в запросе http, и ваш сервер может ответить, есть ли у него результат или нет для этого идентификатора. Это будет решение для опроса клиентов.
Во-вторых, вы можете установить sh соединение webSocket или socket.io от клиента к серверу. Затем отправьте сообщение через этот сокет, чтобы начать запрос. Затем, когда сервер заканчивает свою работу, он может просто отправить результат напрямую клиенту через соединение webSocket или socket.io. Получив ответ, клиент может либо оставить соединение webSocket / socket.io открытым для использования в будущем, либо он может закрыть его.