php curl не всегда соблюдает таймаут - PullRequest
0 голосов
/ 24 января 2019

Мы запустили очень загруженный веб-сайт с php 5.6 на виртуальной машине Debian, запустив curl с такой конфигурацией:

$defaults = array(
            CURLOPT_HEADER => 0,
            CURLOPT_URL => $url,
            CURLOPT_FRESH_CONNECT => 1,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_FORBID_REUSE => 1,
            CURLOPT_CONNECTTIMEOUT => 0.5,
            CURLOPT_TIMEOUT => 2
        );

Мы все время измеряем реальную продолжительность, иногда мы видим ошибку "timeout"(что хорошо), но иногда мы измеряем продолжительность более 2 секунд!(5 секунд).

Мне интересно, почему curl не соблюдает тайм-аут:

  • Есть ли другой вариант настройки тайм-аута?
  • очень занятая виртуальная машина может вызватьэто (я думаю о файловых дескрипторах или i-узлах), curl может ждать этого
  • Это очень невозможно, и ответ где-то еще!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...