мы работаем с веб-сервисами, но иногда они не отвечают, они слишком длинные, чтобы отвечать.
Как остановить cURL, если это занимает более 1 секунды?
Я старался :
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
Я также попытался создать «временную страницу» между моим сервером и веб-сервисом: мой сервер вызывает временную страницу с:
set_time_limit(1);
ini_set('max_execution_time', 1);
И эта временная страница вызывает сам веб-сервис с curl, но все равно ничего. Если у моего веб-сервиса время выполнения 10 секунд, мне придется подождать 10 секунд.
Есть идеи ?
Есть лучшее решение.
Установка времени ожидания Curl в PHP
Смотрите документацию: http://www.php.net/manual/en/function.curl-setopt.php
CURLOPT_CONNECTTIMEOUT — количество секунд ожидания при попытке подключения. Используйте 0, чтобы ждать бесконечно.
CURLOPT_TIMEOUT — максимальное количество секунд, в течение которых функции cURL могут выполняться.
curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt ($ ch, CURLOPT_TIMEOUT, 400); // тайм-аут в секундах
Также не забудьте увеличить время выполнения скрипта php self:
set_time_limit (0); // до бесконечности например
Других решений пока нет …