Я пытаюсь проверить условия тайм-аута, используя curl, и заставить веб-сайт отключиться. Вот мои настройки скручивания:
curl_setopt_array($curl, array(
CURLOPT_URL => "https://app.sample.com/api/abc/changelogs?last=3",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 0,
CURLOPT_TIMEOUT => 0,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache"),
));
Согласно документация, CURLOPT_CONNECTTIMEOUT
является целым числом:
Количество секунд ожидания при попытке подключения. Используйте 0, чтобы ждать бесконечно.
Если у вас есть cURL> = 7.16.2 и PHP> = 5.2.3, вы можете использовать CURLOPT_CONNECTTIMEOUT_MS
:
Количество миллисекунд ожидания при попытке подключения. Используйте 0, чтобы ждать бесконечно. Если libcurl создан для использования стандартного распознавателя имен системы, эта часть соединения будет по-прежнему использовать разрешение в полсекунды для тайм-аутов с минимально допустимым тайм-аутом, равным одной секунде.
Хотя не стоит путать это с CURLOPT_TIMEOUT
а также CURLOPT_TIMEOUT_MS
:
CURLOPT_TIMEOUT
— Максимальное количество секунд, которое разрешено выполнять функциям cURL.
CURLOPT_TIMEOUT_MS
— Максимальное количество миллисекунд, чтобы разрешить выполнение функций cURL. Если libcurl создан для использования стандартного распознавателя имен системы, эта часть соединения будет по-прежнему использовать разрешение в полсекунды для тайм-аутов с минимально допустимым тайм-аутом, равным одной секунде.
Очевидная разница в том, что CURLOPT_CONNECTTIMEOUT
время ожидания до смерти скрипта, если нет соединения; в то время как CURLOPT_TIMEOUT
убивает скрипт через определенное количество секунд.
Других решений пока нет …