Время ожидания WGET?

Я запускаю скрипт PHP через cron, используя Wget, с помощью следующей команды:

wget -O - -q -t 1 http://www.example.com/cron/run

Сценарию потребуется максимум 5-6 минут для его обработки. Будет ли WGet ждать этого и давать ему столько времени, сколько ему нужно, или это время истечет?

вопрос задан 18.02.2010
Click Upvote
93616 репутация

4 ответов


  • 119 рейтинг

    Согласно справочной странице 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
    

    должен убедиться, что время ожидания больше, чем продолжительность вашего сценария.

    (Да, это, пожалуй, самое жестокое из возможных решений ^^)

    ответ дан Pascal MARTIN, с репутацией 329130, 18.02.2010
  • 25 рейтинг

    Время ожидания по умолчанию составляет 900 секунд. Вы можете указать другое время ожидания.

    -T seconds
    --timeout=seconds
    

    По умолчанию повтор 20 попыток. Вы можете указать разные попытки.

    -t number
    --tries=number
    

    ссылка: wget man document

    ответ дан hIpPy, с репутацией 1728, 18.02.2010
  • 6 рейтинг

    Так как в своем вопросе вы сказали, что это PHP-скрипт, возможно, лучшим решением может быть просто добавить в ваш скрипт:

    ignore_user_abort(TRUE);
    

    Таким образом, даже если wget завершается, сценарий PHP продолжает обрабатываться, по крайней мере, пока он не превысит ограничение max_execution_time (директива ini: по умолчанию 30 секунд).

    Согласно wget, в любом случае вы не должны изменять его время ожидания, в соответствии с руководством UNIX время ожидания по умолчанию для wget составляет 900 секунд (15 минут) , так как оно намного больше, чем 5-6 минут, которые вам нужны.

    ответ дан Marco Demaio, с репутацией 19145, 19.12.2012
  • 3 рейтинг

    До версии 1. 14, аргументы тайм-аута wget не соблюдались при загрузке через https из-за ошибки .

    ответ дан Dean Rather, с репутацией 17475, 14.08.2014