@Denis9999

Как обойти прерывание выполнения программы на PHP?

Пишу скрипт на PHP, что-то наподобие парсера, он обрабатывает по очереди сайты из списка. Проблема в том что некоторые сайты много весят и поэтому выполнение программы прерывается такой ошибкой:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 109089310 bytes) in


В PHP.INI параметр memory_limit = 128M
Я попробовал вставить такую конструкцию в файл, загружающий сайт, чтобы обойти прерывание, но она не работает:

try {
	ini_set("max_execution_time", "30");
} 
catch (Exception $e) {
	echo 'Не успел загрузится || <br>';
}


Можно увеличить memory_limit , но это заметно увеличит время выполнения программы, при этом все равно может попасться сайт, из-за которого прервется программа. Подскажите, пожалуйста, как решить этот вопрос?
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 2
riot26
@riot26
<:З )~~
Лучший совет -- оптимизируйте. PHP-скрипты в идеале не должны жрать столько памяти. Можно, например, парсить частями. Как костыль -- увеличьте memory_limit.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Подскажите, пожалуйста, как решить этот вопрос?


очереди, max_execution_time = 0, демоны (php cli процесс)...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы