2017-02-22 4 views
1

Я использую модуль 'request' node.js (https://github.com/request/request) для отправки запросов другой службе. И иногда необходимо отправить запрос и ждать ответа бесконечно из-за медленности этой службы, на которую был отправлен запрос.Возможно ли установить бесконечный тайм-аут в запросе node.js?

можно установить свойство «тайм-аут» на запрос и таким образом, вы будете переопределить значение по умолчанию для чтения и таймаут соединения:

таймаут - целое число, содержащее число миллисекунд, чтобы ждать сервера отправьте заголовки ответов (и запустите тело ответа) перед отменой запроса. Обратите внимание, что если базовое TCP-соединение не может быть установлено, тайм-аут соединения по всей ОС будет отменять параметр таймаута (по умолчанию в Linux может быть от 20 до 120 секунд).

Но какое значение мы можем установить, чтобы сделать этот тайм-аут бесконечным?

+0

Думаю, миллиард был бы достаточно бесконечным. Я действительно не думаю, что вы захотите подождать более 10 дней. –

+0

Вы можете контролировать тайм-аут сервера. Но у клиента может быть свой собственный тайм-аут (например, браузер), который вы не контролируете. – jfriend00

+0

Конечно, это вариант установить миллиард. Но магические числа всегда выглядят как обходные пути. Было бы прекрасно, если бы в какой-либо официальной документации говорилось, что установка тайм-аута на 0 равна бесконечности, но это не говорит. –

ответ

0

Установите server.timeout свойство от 120,000 (по умолчанию), чтобы 0

+0

Я боюсь, что таким образом мы установим 0 для всех запросов на этом сервере, верно? –

+0

@IrinaPetrushenko, вы добавляете для определенного скрипта или? – FreedomPride

+0

Я имею в виду, если у вас есть сервер с API, и вы не хотите устанавливать один бесконечный предел для всех запросов, тогда это не сработает. –

1

Все клиенты имеют свои собственные ожидания (хром, Firefox, ...), то вы должны думать, что это это не полезно, чтобы установить бесконечное время ожидания, вы должен переосмыслить вашу проблему, это не так. Мужчина

+0

В моем случае запрос отправляется из одной службы node.js в другую службу node.js. И я могу контролировать/редактировать таймауты в обеих службах. –

+0

Хорошо, тогда проверьте этот ответ http://stackoverflow.com/questions/21708208/express-js-response-timeout – jesusgn90

Смежные вопросы