Итак, у меня есть скрипт, который извлекает данные из удаленного API и вставляет их в нашу собственную базу данных. Проблема в том, что он отлично работает для первых 30-40 записей, но после этого я продолжаю получать максимальное время выполнения, достигающее 60 секунд. Почему это? Я имею в виду, что сначала он работает нормально....

Вот код:

    $handle = curl_init($url);
    curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($handle, CURLOPT_CAINFO, self::getCAcertsFilePath());
    $response = curl_exec($handle);
    $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    curl_close($handle);

    if($httpCode == 200){
        return $response;
    }
    else{
        $error_message = self::formatErrorCode($httpCode);
        flash()->error($error_message);
        return false;
    }

Спасибо за помощь, Ара

1
Ara Sivaneswaran 13 Апр 2015 в 04:40
Как вы выполняете свой скрипт? опубликовать полное сообщение об ошибке
 – 
Iłya Bursov
13 Апр 2015 в 04:41
Почему - потому что это занимает более 60 секунд
 – 
user557846
13 Апр 2015 в 04:44
Может быть, вам следует настроить файл php.ini, изменив этот max_execution_time=60
 – 
Eko Junaidi Salam
13 Апр 2015 в 04:46
Мой скрипт выполняется в цикле, пока я не получу все новые данные из удаленного API.
 – 
Ara Sivaneswaran
13 Апр 2015 в 04:58
Нет ли способа обойти это? Я не хочу делать скрипт менее безопасным, увеличивая максимальное время.
 – 
Ara Sivaneswaran
13 Апр 2015 в 04:58

2 ответа

Перейдите к файлу php.ini и выполните поиск по запросу max_execution_time. Я думаю, что по умолчанию должно быть 30 секунд. Вы можете изменить его на большее число. Однако будьте осторожны. Не указывайте большое число, потому что чем больше число, тем больше ресурсов будет использовать ваш сервер.

0
Erick 13 Апр 2015 в 04:52
Привет, я знаю, что это возможно, но почему первые 30-40 записей работают нормально, а последующие нет? Я имею в виду, что это одинаковое количество данных для каждой записи...
 – 
Ara Sivaneswaran
13 Апр 2015 в 04:59
Ограничение по времени для всего скрипта, а не для каждого цикла
 – 
user557846
13 Апр 2015 в 05:58

Попробуйте установить завиток, используя это:

curl_setopt($curl, CURLOPT_TIMEOUT_MS, 2000); //in milliseconds

Для получения дополнительной информации прочитайте это. или вы можете использовать

set_time_limit(90) // in seconds

Вы можете прочитать его здесь для получения дополнительной информации.

0
Eko Junaidi Salam 13 Апр 2015 в 05:16