Как установить тайм-аут для запроса Curl?

Вы можете установить таймаут для подключения к серверу с помощью параметра командной строки --connect-timeout и таймаут для общего времени запроса с помощью параметра командной строки -m или --max-time. Время ожидания указывается в секундах. Это время, в течение которого запрос должен быть обработан или отменен. В этом примере таймаута Curl мы устанавливаем таймаут для отправки запросов.

CURL

Что такое тайм-аут?

Время ожидания называется таймаутом. Curl отправляет запросы через сетевое соединение. Первым шагом в получении ресурса с сервера является соединение с этим сервером. Установление соединения с удаленным сервером может занять некоторое время, в зависимости от скорости сети, задержки в сети и загрузки сервера. Curl имеет таймауты по умолчанию для соединения и общего времени запроса, но мы можем указать свои таймауты для каждой команды Curl.

Что такое --connect-timeout и как его использовать?

Параметр -connect-timeout ограничивает количество времени, в течение которого Curl будет пытаться подключиться к удаленному хосту. Значение таймаута соединения указывается в секундах. Если Curl не может установить соединение в течение указанного интервала, команда завершается неудачно.
Синтаксис команды Curl -connect-timeout

Что такое -max-time и как его использовать?

Параметр -max-time (или -m) - это максимальное время в секундах, в течение которого вся операция должна быть завершена или отменена. Параметр -max-time может предотвратить зависание Curl при выполнении пакетных заданий в медленных сетях.
Синтаксис команды Curl -max-time

Примеры использования тайм-аут Curl

В следующем примере мы устанавливаем таймаут соединения для команды Curl при отправке запроса на адрес curlmyip.ru:
Пример таймаута соединения Curl

Чтобы ограничить общее время выполнения команды Curl десятью секундами, мы можем использовать параметр --max-time:

Пример

Мы можем использовать оба таймаута в одной команде:

Что такое таймаут TCP?

TCP расшифровывается как Transmission Control Protocol (протокол управления передачей). Таймаут TCP keepalive определяет интервал, в течение которого TCP-соединение проверяет работоспособность канала Fiber Channel over IP (FCIP). Это обеспечивает быстрое обнаружение сбоя соединения, даже если оно неактивно. Curl включает поддержку TCP по умолчанию. TCP keepalive - это функция, которая заставляет стек TCP посылать зонд на другую сторону при отсутствии трафика, чтобы убедиться, что она все еще существует и жива. Используйте параметр --keepalive-time, чтобы указать, как часто вы хотите отправлять зонд партнеру в целых секундах. По умолчанию это 60 секунд. Иногда это зондирование мешает вам, и вы можете легко отключить его с помощью --no-keepalive.

Пример тайм-аута непрерывной работы Curl

Пример отключения тайм-аута

Понравилась статья? Поделиться с друзьями:
Добавить комментарий