До сих пор я ничего не мог найти на самом деле, но правда ли это, что на curl
самом деле не истекает вообще?
user@host:~# curl http://localhost/testdir/image.jpg
Я спрашиваю, потому что я перенаправляю любой запрос изображений в testdir
отдельный модуль Apache, который генерирует эти изображения на лету. Это может занять до 15 минут, прежде чем изображение будет фактически готово и доставлено запрашивающему клиенту.
Будет ли curl
всегда ждать (или она в зависимости от конфигурации) , или есть какой - либо тайм - аут?
Ответы:
Да.
Параметры тайм-аута
curl
имеет два варианта:--connect-timeout
и--max-time
.Цитирование из справочной страницы:
а также:
Значения по умолчанию
Здесь (в Debian) он прекращает попытки подключения через 2 минуты, независимо от времени, указанного в параметре,
--connect-timeout
и хотя значение времени ожидания подключения по умолчанию составляет 5 минут в соответствии сDEFAULT_CONNECT_TIMEOUT
макросом в lib / connect.h .Значение по умолчанию для
--max-time
, по-видимому, не существует, что заставляетcurl
ждать ответа вечно, если начальное соединение успешно.Что использовать?
Вы, вероятно, заинтересованы в последнем варианте
--max-time
. Для вашего случая установите его900
(15 минут).Задание опции
--connect-timeout
для чего-то вроде60
(одна минута) также может быть хорошей идеей. В противном случаеcurl
будет пытаться подключиться снова и снова, по-видимому, используя некоторый алгоритм отката.источник
Существует ограничение по времени: / usr / bin / timelimit - эффективно ограничивает абсолютное время выполнения процесса
источник
Лучше , чем
--max-time
являются--speed-limit
и--speed-time
варианты. Короче говоря,--speed-limit
указывает минимальную среднюю скорость, которую вы готовы принять, и--speed-time
указывает, как долго скорость передачи может оставаться ниже этого предела до истечения времени ожидания и отмены.источник
Если у вас установлены coreutils на MacOS, вы можете использовать команду GNU timeout, которая входит в этот пакет. Все инструменты GNU имеют префикс,
g
так что CLI будетgtimeout
.пример
источник
Пара решений в BASH4 +
Образец использования:
РЕКОМЕНДУЕМ, чтобы NC использовал, если нам нужен определенный порт
источник