max_execution_time не работает, но в echo ini_get('max_execution_time') показывает время, которое я предоставляю

привет не знаю, как выйти из этой ситуации, я пытаюсь увеличить max_execution_time до 5000, например, для ini_set('max_execution_time',5000). он действительно показывает время выполнения, установленное на 5000, в echo ini_get('max_execution_time'), однако оно не работает, так как соединение с сервером закрывается раньше, чем через 5000 секунд.

Я пытаюсь получить XML с помощью API, а затем преобразовываю эти данные в массив, а затем этот массив используется в цикле для вставки значений массива в мою базу данных. Я использую codeignitor, см. приведенный ниже код.

Мой контроллер

public function get_chassis_badge_detail()
    {
        $this->load->model('md_api_test','md_api');
        if($this->md_api->get_chassis_badge_detail())
        {
            $this->load->view('api_test',['car_detail' => '']);
        }
    }

Моя модель:

public function get_chassis_badge_detail()
{
    //// for kuzov insertion in to database from stats auction

    $this->load->library('auction_api');
    $query = "select count(distinct kuzov) from stats";
    $total_kuzov = $this->auction_api->aj_get_clean($query);
    $cycle_end = round($total_kuzov[0]['TAG0']/250)+1;

    $query = "select kuzov,model_id from stats group by kuzov order by model_id ASC";

    $arr = '';
    for($k=0; $k<($cycle_end); $k++)
    {
        $query .= " limit ".($k*250).",250";
        $arr[] = $this->auction_api->aj_get_clean($query);
        $query = "select kuzov,model_id from stats group by kuzov order by model_id ASC";

        if (isset($arr[$k][0]))
        {
            for($b=0; $b<count($arr[$k]); $b++)
            {
                $trim_val=trim($arr[$k][$b]['KUZOV']);
                if(!empty($trim_val))
                {
                    $this->db->query("INSERT INTO `dd_chassis_badge`(`model_id`, `badge`) VALUES ('".$this->db->escape_str($arr[$k][$b]['MODEL_ID'])."','".$this->db->escape_str($arr[$k][$b]['KUZOV'])."');");
                }
            }
        }
        else
        {
            unset($arr[$k]);
            break;
        }
    }

    return true;
}

person Abdal Asif    schedule 15.06.2017    source источник
comment
Где вы устанавливаете max_execution_time? Это в скрипте или в файле php_ini?   -  person bencarter78    schedule 15.06.2017
comment
Вам также может понадобиться посмотреть настройку тайм-аута Apache. Значение времени ожидания Apache в файле httpd.conf. stackoverflow.com/ вопросы/9629566/   -  person hamboy75    schedule 15.06.2017
comment
я использую в верхней части моего скрипта @bencarter78   -  person Abdal Asif    schedule 15.06.2017
comment
@ hamboy75 мой скрипт едва ли работает 30 секунд, тогда как время apache по умолчанию составляет 300 секунд.   -  person Abdal Asif    schedule 15.06.2017
comment
Ну, если вы хотите увеличить время php до 5000, это бесполезно, если время ожидания apache равно 300: p, в любом случае, через сколько времени оно остановится?   -  person hamboy75    schedule 15.06.2017
comment
20 секунд @hamboy75   -  person Abdal Asif    schedule 15.06.2017
comment
Другое дело, может проблема со временем не в php/apache, может проблема в тайм-ауте базы данных?? :) и вам не разрешено запускать запросы в течение +20 секунд   -  person hamboy75    schedule 15.06.2017
comment
действительно ли время ожидания базы данных имеет значение, если мы вставляем строку даже одну за другой?   -  person Abdal Asif    schedule 15.06.2017


Ответы (1)


Есть ли изменение, при котором вы получаете сообщение об ошибке (и, следовательно, сервер останавливается раньше), но не видите его? У вас есть файл php.ini для отображения ошибок php?

person João Henrique Silveira    schedule 15.06.2017
comment
да, файл php.ini настроен на отображение ошибки. скрипт, кажется, работает нормально до 19 циклов цикла и не выдает никаких ошибок, если он увеличивается, чем тайм-ауты. массив, который я пытаюсь вставить в свою базу данных, состоит из 19000+ записей. - person Abdal Asif; 15.06.2017
comment
Хм... взгляните на это: stackoverflow.com/a/1590644/7399485. Может ли это быть так? - person João Henrique Silveira; 16.06.2017