Тайм-ауты 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();

Как я уже сказал, этот код работает большую часть времени, и даже время ожидания работает большую часть времени.

Что мог сделать другой сайт, чтобы он мог повесить мой запрос, несмотря на тайм-ауты? И что я могу сделать, чтобы я не зависал?

Спасибо боб

0 ответов

Другие вопросы по тегам