веб-сервисы — PHP cURL — ограничить время выполнения

мы работаем с веб-сервисами, но иногда они не отвечают, они слишком длинные, чтобы отвечать.

Как остановить 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 секунд.

Есть идеи ?

2

Решение

Есть лучшее решение.

Установка времени ожидания 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); // до бесконечности например


5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector