Согласно странице руководства wget , есть несколько параметров, связанных с тайм-аутом - и есть тайм-аут чтения по умолчанию, равный 900 с - поэтому я говорю, что да, это может быть тайм-аут.
Вот рассматриваемые варианты:
-T seconds
--timeout=seconds
Установите время ожидания сети на секунды секунды. Это эквивалентно указанию --dns-timeout
,
--connect-timeout
и
--read-timeout
одновременно.
И для этих трех вариантов:
--dns-timeout=seconds
Установите время ожидания поиска в DNS равным секундам секунды.
Поиск DNS, который не завершится в течение указанного времени, завершится ошибкой.
По умолчанию для DNS-запросов нет тайм-аута, кроме тех, которые реализованы системными библиотеками.
--connect-timeout=seconds
Установите время ожидания подключения на секунды секунды.
TCP-соединения, для установления которых требуется больше времени, будут прерваны.
По умолчанию тайм-аут подключения отсутствует, кроме установленного системными библиотеками.
--read-timeout=seconds
Установите таймаут чтения (и записи) на секунды секунды.
«Время» этого тайм-аута относится к времени простоя: если в какой-либо момент загрузки данные не принимаются в течение более указанного количества секунд, чтение завершается ошибкой и загрузка возобновляется.
Этот параметр не влияет напрямую на продолжительность всей загрузки.
Я полагаю, используя что-то вроде
wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run
следует убедиться, что нет тайм-аута, превышающего продолжительность вашего скрипта.
(Да, это, наверное, самое жестокое решение из возможных ^^)
-t
похоже, является псевдонимом--tries
, который устанавливает количество попыток равным числу. ;;; Похоже, это не связано ни с каким тайм-аутом, но с количеством повторных попыток загрузки wget в случае ошибки - и вы, вероятно, не хотите, чтобы тайм-аут считался ошибкой, и повторный вызов скрипта.--timeout
. Вероятно, потому что я использую в команде базовую аутентификациюТайм-аут по умолчанию - 900 секунд. Вы можете указать другой тайм-аут.
По умолчанию попытка повторяется 20 раз. Вы можете указать разные попытки.
ссылка: документ wget man
источник
Поскольку в своем вопросе вы сказали, что это сценарий PHP, возможно, лучшим решением может быть просто добавить в свой сценарий:
Таким образом, даже если он
wget
завершается, сценарий PHP продолжает обрабатываться, по крайней мере, до тех пор, пока он не превыситmax_execution_time
лимит (директива ini: по умолчанию 30 секунд).В
wget
любом случае вы не должны изменять его тайм-аут, согласно руководству UNIX, тайм-аут wget по умолчанию составляет 900 секунд (15 минут) , это намного больше, чем 5-6 минут, которые вам нужны.источник
До версии 1.14 аргументы тайм-аута wget не соблюдались при загрузке через https из-за ошибки .
источник