Мы запустили очень загруженный веб-сайт с 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 может ждать этого
- Это очень невозможно, и ответ где-то еще!