интерфейс командной строки — Как ограничить время выполнения PHP-скрипта CLI

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

Но тем временем я хочу понять, почему эти команды, которые я пробовал и помещал в начало моего PHP-кода, не работают?

ini_set('max_execution_time', 30);
set_time_limit(30);

Сценарии выполняются полностью на PHP и выполняются как CLI PHP (а не как веб-страницы, запускаемые из браузера) как:

php /var/www/html/client/index.php

Сценарии выполняются нормально, но если один из них зависает, он застревает как процесс (при просмотре через TOP или же HTOP) и использует ресурсы, пока он пытается выполнить и никогда не закрывается.

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

Спасибо.

0

Решение

Ты используешь set_time_limit(30); что увеличивает время выполнения скрипта. Прочитайте его документацию Вот.

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

CLI имеет установленный по умолчанию предел времени 0, который бесконечен. Используйте тот же метод, но только в начале скрипта и убедитесь, что он не находится внутри цикла или выполняется несколько раз по рекурсии и т. Д.

Это должно решить проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector