Файл не работает более 5 минут, даже если я установил максимальное время выполнения в файле php и файле php.ini

1

Я действительно не знаю, что именно происходит. Я запускаю файл, в котором есть цикл, и он читает XML файл, содержащий более 11 000 элементов, и я вставляю и обновляю файл на веб-сайте. Когда я запускаю сценарий, он не исполняется более 5 минут. Я googled решение и нашел ниже ответы: -

1.)ini_set('max_execution_time', 56700);
2.) ini_set('max_execution_time', -1);
3.) ini_set('max_execution_time', 0);
4.) in php.ini max_execution_time  = 600//10minutes

Я также создал файл phpinfo.php, где я использовал функцию phpinfo, и отображает maximum execution time =600//10 минут, но мой сервер не выполняет его более 5 минут. Я добавил время в свой код, чтобы проверить его.

Я также добавил ini_set('memory_limit', '1G'); чтобы проверить, нет ли проблемы с ограничением памяти, но до сих пор нет решения

Пожалуйста, помогите мне. Также обратите внимание, что безопасный режим выключен

  • 1
    Вы перезагружаете сервер после изменений ...? большинство пробабалы да :) просто напоминание.
  • 0
    Я не перезагружал сервер. У меня была такая же проблема раньше, но я решил ее, используя тот же код, не перезагружая сервер, не знаю, почему это не работает на этот раз
Показать ещё 9 комментариев
Теги:

1 ответ

0

Вы можете обойти эту проблему с помощью set_time_limit(). Установите для каждой итерации цикла, и все должно быть хорошо. Вы можете установить ограничение по времени на несколько секунд (достаточно для выполнения одной итерации цикла). Я использовал это для скриптов, которые работали более часа, и все получилось просто отлично.

Например, например:

while(1) {
    set_time_limit(5);
    // do something complicated for less than 5 seconds
    // break your loop eventually
} 

Большим преимуществом этого подхода является то, что вам не нужно постоянно настраивать настройки для больших файлов и вы можете сохранять таймауты, когда не было запланировано больших временных интервалов.

  • 0
    Не уверен, почему вы помещаете set_time_limit внутри цикла, хотя ..
  • 0
    @ DarkBee Установка внутри цикла. Мне не нужно знать, сколько итераций (и, следовательно, сколько времени) займет общая сумма. Но я все еще держу некоторый контроль (т.е. все еще ограничивающий, чтобы поймать бесконечные циклы или подобное)
Показать ещё 14 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню