Как запустить очень тяжелый скрипт PHP который не будет ограничен временем и клиентской частью?

Проблема в том что скрип очень долго выполняется. и нет клиентского интерфейса чтобы использовать JS(чтоб поэтапно) так как используется cron или агент.
  • Вопрос задан
  • 3828 просмотров
Пригласить эксперта
Ответы на вопрос 4
shurph
@shurph
Если вы запускаете скрипт через cron, то он выполняется в cli режиме. А в cli режиме у php нет лимитов на время выполнения скрипта.

Если же ваш скрипт при запуске из крона падает, то, скорее всего, он превышается какие-то другие лимиты (скорее всего, потребляет больше памяти, чем разрешено).

Если проблема с памятью, то можно увеличить лимиты, как советует @merryjane, или же поискать и оптимизировать места, где у вас идут утечки памяти.

UPD: но вы, всё же, можете сделать поэтапное выполнение скрипта: сгенерировать дополнительным скриптом подзадачи, положить эти задачи в какую-нибудь БД, а потом запускать ваш основной скрипт несколько раз, а он уже будет брать задачи из такой вот кустарной очереди. Ну или можно использовать какие-нибудь готовые менеджеры очередей :)
Ответ написан
@SilentFl
set_time_limit(0);
Ответ написан
Комментировать
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
Ограничение времени работы скрипта указаывается в настройках php. Нет желания опитимизировать код? парсер какой нибудь?
Ответ написан
merryjane
@merryjane
Системный администратор
Если php запусткается через cli, то подать ему через опцию -c (php -c /path/to/php.ini -f /path/to/your/script) модифицированный php,ini, где будут выкручены max_execution_time и прочее:
php.net/manual/ru/features.commandline.options.php
Ответ написан
Ваш ответ на вопрос

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

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