Столкнулся с проблемой с которой борюсь уже 14 часов подряд, первые 6 часов разбирал как запустить в фоном режиме PHP-скрипт, читал всяких демонов или какие-то плагины/библиотеки и т.д. и т.п., но всё таки сделал! Было очень сложно так как большинство способов вообще не работали или требовали сокеты/консоль которые я не мог получить на шаред-хостинге. Далее вроде за пару часов разобрал cURL и дебажил всё подряд, спустя еще часа 3 - сделал! И теперь 5 часов не могу понять почему циклы: while / for работают всего в 20 кругов максимум!! Даже запуская напрямую так же 20 кругов или с 16 до 22 кругов. И потом сразу получаю от штекера (или апача/nginx) ошибку об 404 file not found. Пробовал try & catch - ошибку не дает, а падает так же на 404 ошибку. Пробовал такие методы как:
ini_set('max_execution_time', 1000), ini_set('memory_limit', '1024M'),
set_time_limit(0)
- всё так же не помогло, уже много чего перерыл, всякие команды для
exec()
.
Делаю фоновый запуск так:
exec('curl --max-time 1000 "https://domain/curl.php" > /dev/null 2>&1 &', $output, $exit);
А код в файле curl.php: это заход на сайт по имеющимся cookie-данным и переход по трем ссылкам с условиями (проверка по БД) в цикле. Но цикл работает всего
16~22 раза даже если перейти на файл напрямую. Тут всё работает, проблема только в цикле, даже если нет break; он перестает работать.