Есть скрипт, который работает в фоновом режиме. Работает "бесконечно" долго, остановиться должен лишь когда сам того пожелает, то бишь при выполнении условия N.
Общая суть такова:
1. Обращаемся через
Curl к ПУ сервиса N, который не имеет никакого API.
2. Берем данные, с помощью
PHPQuery вытаскиваем что нужно в массив.
3. Проводим проверки на соответствие и на ошибки.
4. Пишем данные в файл в текстовом формате с помощью
file_put_contents.
5. Проверяем достижение условия N.
5. Повторяем операцию снова и снова и снова...
Вопрос состоит в следующем. Скрипт вылетел через какое-то время с ошибкой
Fatal error: Out of memory.
Прописал в начало скрипта:
ini_set('xdebug.remote_autostart', 0);
ini_set('max_execution_time', 0);
Не помогло, хотя от предыдущей ошибки
max_execution_time избавился,
XDebug как оказалось, не выключился, как ожидалось и все это время ужасно тормозил и без того медленный скрипт.
Можно конечно выставить:
ini_set('memory_limit', -1);
но это не решение проблемы.
Где-то происходит утечка памяти, может нужно очищать переменные и цикл после итерации, может нужно вместо
file_put_contents использовать
fopen?
Может вы знаете что-то еще, что может влиять на память, буду рад услышать любой совет.