Задать вопрос
@DenBree

Как увеличить max_execution_time?

Всем привет.

У меня возникла проблема с max_execution_time.

Суть проблемы такая:
Есть CSV файл со ссылками на страницы, которые нужно парсить, затем обработать данные в нужном формате, а потом добавить их на сайт. Сам файл загружается посредствам AJAX. Так вот весь процесс проходит как и запланировано, только прерывается на 5 минутах.

Пробовал всеми способами меня значение max_execution_time, но результат все тот же. В оф документации PHP написано, что это дефолтное значение.

Подскажите, пожалуйста, в чем может быть проблема?

P.S. Писал в поддержку, так нечем и не могут помочь, только просят доступы к проекту.

Текущие настройки:
max_execution_time 3600
max_input_time -1
  • Вопрос задан
  • 303 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 3
glaphire
@glaphire Куратор тега PHP
PHP developer
Это неправильный подход для решения такой задачи, крупные файлы нужно парсить асинхронно (через очереди)
Ответ написан
Fernus
@Fernus
Техник - Механик :)
Тут про очереди/евенты тебе написали уже...
Ну а данную задачу можно разбить например на такие составляющие:

1. "Забираем" файл;
2. Делаем "евент", что файл принят.
3. Если файл принят, то начинаем читать каждую строку со счётчиком по времени...например 30 сек...чтобы не упираться в ограничения...если при чтении очередной строки и обработке мы превышаем или равно 30 сек, то запоминаем то место в файле, где остановились и кидаем евент "продолжить" и отправляем в очередь...
4. Повторяем шаг 3 пока не дойдём до конца файла...если конец достигнут, то кидаем евент "профит";
5. Если достигнут "профит", говорим пользователю "алиЛУя!"

Как-то так...
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
php не сам по себе работает, там еще есть nginx/apache в которых тоже есть максимальное время запроса.
Но в целом смысла так делать нет, лучше через очереди и т.д.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Используйте CRON для запуска php, там нет ограничений по времени выполнения.
Ответ написан
revenger
@revenger
49.5
Как вариант, импортировать CSV.* файл в SQL через командную строку и дальше необходимую инфу брать из базы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы