Как ограничить время запроса Curl
Зачастую лучше быстро потерпеть неудачу, чем продолжать ждать в надежде на успех.
Когда дело доходит до отправки веб-запросов, время имеет решающее значение. Никто не любит бесконечно ждать загрузки веб-страницы или ответа сервера. Если вы используете Curl для получения данных из Интернета, вам будет приятно узнать, что существуют способы ограничить время, затрачиваемое на ваши запросы.
Вот как можно ограничить время запроса на завихрение, чтобы обеспечить контроль над операциями извлечения данных.
Способ 1: использование опции --max-time
При запуске команды curl вы можете указать параметр -m или --max-time, чтобы установить строгий лимит времени для запроса. Этот параметр позволяет указать максимальное время в секундах, которое вы готовы предоставить команде, прежде чем она завершится с кодом ошибки тайм-аута (28):
curl --max-timе [sеconds] [URL]
Максимальное значение можно определить с десятичной точностью: 0,3 означает 300 миллисекунд, 5,46 — 5460 миллисекунд, а 20 — 20 секунд.
Например:
curl -o test.md --max-time 30 https://github.com/test/file1
Эта команда отправляет запрос на предоставленный URL-адрес GitHub. Он сохранит данные ответа как test.md и завершится в течение максимального времени 30 секунд.
Способ 2: использование опции --connect-timeout
Чтобы контролировать время, которое Curl тратит на попытку подключения к хосту, используйте параметр --connect-timeout. Это устанавливает максимальный лимит времени для выполнения Curl шагов подключения, включая поиск DNS и последующие подтверждения TCP, TLS или QUIC.
Если Curl не может установить соединение в течение указанного вами периода времени, он завершит работу с кодом ошибки тайм-аута (28):
curl --connect-timeout [seconds] [URL]
Например:
curl -o test.md --connect-time 20 https://github.com/test/file
Здесь команда curl извлекает файл, указанный в URL-адресе, сохраняет его как test.md и устанавливает 20-секундное ограничение для установления соединения с сервером.
Управление запросами Curl для быстрого извлечения
В мире, где время — деньги, возможность ограничить время запроса на завивку — полезный навык. Независимо от того, выберете ли вы опцию --connect-timeout или --max-time, вы берете на себя ответственность за задачи по извлечению данных. Итак, больше нет бесконечного ожидания, пришло время делать эффективные, контролируемые веб-запросы.
В следующий раз, когда вы будете ждать завершения запроса на завивку, запомните эти методы и заставьте завивку работать на ваших условиях.