Perl LWP: время ожидания соединения отличается от времени ожидания запроса - PullRequest
2 голосов
/ 15 марта 2012

Я использую LWP :: UserAgent для связи с веб-сервисами на нескольких серверах;серверы связываются по одному за раз.Каждый ответ может занять до 30 минут, поэтому я устанавливаю тайм-аут LWP на 30 минут.

К сожалению, тот же тайм-аут также применяется, если сервер вообще недоступен (например, веб-сервер не работает).Таким образом, мое приложение ожидает 30 минут для сервера, который не работает.

Возможно ли установить два отдельных таймаута?

  1. короткий, который ожидает, пока соединение не будет
  2. более длинный, ожидающий ответа после установления соединения.

1 Ответ

0 голосов
/ 15 марта 2012

Тот же тайм-аут не «также применяется», если сервер недоступен.Опция тайм-аута работает очень специфическим образом:

Запрос отменяется, если в течение тайм-аута не наблюдается никаких действий при подключении к серверу.Это означает, что время, необходимое для полной транзакции и фактического возврата метода request (), может быть больше.

Пока данные передаются, время ожидания не будет запущено.Вы можете использовать функции обратного вызова (см. Раздел МЕТОДЫ ЗАПРОСА в документации), чтобы проверить, как долго происходит передача данных, и полностью выйти, если это необходимо.

...