Тайм-ауты HTTP-запросов не всегда работают
У меня есть PHP-код, который отправляет HTTP-сообщения на другой сайт и выполняет очистку веб-страниц. Я установил таймауты (на самом деле очень короткие тайм-ауты), и они работают большую часть времени. Но иногда другой сайт не отвечает, и делает это так, что мой код никогда не блокируется. Вместо этого мой код зависает навсегда. Это случилось недавно, и я попытался перейти на другой сайт из моего браузера. Через много минут браузер показал ошибку 503.
Код, который я использую:
$query = new HTTP_Request2($theirURL, HTTP_Request2::METHOD_POST,
array('connect_timeout' => 2, 'timeout' => 4));
$query->setHeader(array(
'Host' => $theirHost,
'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0',
'Accept' => 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding' => 'gzip, deflate',
'Accept-Language' => 'en-US,en;q=0.5',
'Connection' => 'keep-alive',
));
$query->setConfig(array(
'ssl_verify_peer' => FALSE,
'ssl_verify_host' => FALSE
));
$params = array( <a bunch of params> );
$query->addPostParameter($params);
$response = $query->send();
Как я уже сказал, этот код работает большую часть времени, и даже время ожидания работает большую часть времени.
Что мог сделать другой сайт, чтобы он мог повесить мой запрос, несмотря на тайм-ауты? И что я могу сделать, чтобы я не зависал?
Спасибо боб