Встановіть час очікування відповіді веб-сторінки за допомогою curl


15

Я використовую інструмент для моніторингу, чи веб-сторінка запрацьована.

Інструмент використовує curlкоманду внутрішньо для отримання виводу.

Однак, коли веб-сторінці потрібен більше часу для відповіді, це призводить до TIMEOUTпомилки. Я не можу збільшити час очікування від інструменту.

Чи є спосіб встановити / змінити період очікування відповіді з веб-сторінки?

Чи є якась змінна, яку можна змінити?

Відповіді:


23

Ви можете скористатися -mопцією:

-m, --max-time <seconds>
              Maximum time in seconds that you allow the  whole  operation  to
              take.   This is useful for preventing your batch jobs from hang‐
              ing for hours due to slow networks or  links  going  down.   See
              also the --connect-timeout option.

              If this option is used several times, the last one will be used.

Це включає час підключення, якщо ви хочете вказати його окремо, скористайтеся --connect-timeoutопцією.


4

Зазвичай ви робите це за допомогою параметра в командному рядку, коли curlвикликається. Але оскільки ви не можете змінити це, є інший спосіб - ви можете створити конфігураційний файл для curl. На unix curlспочатку перегляньте домашній каталог користувача, у якого запущено curl для файла, який називається .curlrc. Створіть цей файл за допомогою рядка

connect-timeout = 10

щоб зменшити час очікування до 10 секунд. Або ви можете встановити максимум часу для всієї операції за допомогою параметра max-time:

max-time = 10

Це відмінна ідея .. але мені також було цікаво, чи є якась певна змінна env для цього чи щось, що можна встановити з бекенда, як ulimit, щоб збільшити кількість FD?
user80040

Я нічого не можу знайти на сторінці man.
Дженні Д

4

curl має варіант "timeout time":

--connect-timeout <seconds>

Якщо ваш "інструмент" - це сценарій, ви можете вручну відредагувати його там. Але /unix//a/148926/77959 ще краще - редагуйте curl-config!


Я .. додавання конфігурації - досить яскрава ідея ... але мені також було цікаво, чи є якась певна змінна env для цього чи щось, що можна встановити з бекенда, як ulimit, щоб збільшити кількість FD?
user80040

@ user80040 Ні, немає. Немає "резервного", тайм-аут - це не якесь обмеження системи. Curl виконує веб-запит і вирішує вимкнути час, виходячи з його конфігурації.
Жил 'ТАК - перестань бути злим'

0

Від Curlви можете використовувати цю опцію --connect-timeout: Максимальний час в секундах , яке ви дозволяєте з'єднання з сервером , щоб взяти. Це обмежує лише фазу підключення, як тільки curlпідключивши цю опцію, більше не потрібно використовувати. Дивіться також --max-timeваріант.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.