Надеюсь, у тебя все хорошо
Я сталкиваюсь с проблемой и не получаю решения.
У меня есть папка, которая содержит данные всех недель и лет в структуре «data / year / week /», и каждая папка содержит файл «weekly.xml», начиная с 2003 по 2014 год.
Мне нужно получить некоторые данные XML из файла weekly.xml папки года и недели. Я получаю все правильно, когда использую для получения данных за 10 недель за все годы, но когда я увеличиваю размер, у меня появляется внутренняя ошибка сервера с сообщением «Кроме того, обнаружена ошибка 404 не найдена при попытке использовать документ об ошибках для обработки request «Я продлил время выполнения от INI, но все еще получаю проблемы.
Когда я звоню все 52 недели из года, все даты идут правильно, без ошибок.
Спасибо за помощь…
Обычно, когда я получаю такую ошибку, я получаю HTTP 503 Internal Server Error. 404 означает, что искомый файл не был найден вашим Apache или другим сервером.
Вот кое-что, что работало для меня в прошлом, когда я сбрасывал таймаут PHP для каждой задачи. Просто будьте осторожны с такого рода подходом, так как вы не хотите, чтобы это превратилось в бесконечный цикл.
$done = false;
while(!$done) {
// Reset PHP's time limit so that you don't time out.
set_time_limit(30);
// Process single file here ...
if (!$isLastFile) {
$done = true;
}
}
В идеале вы захотите кэшировать результаты предыдущих лет и месяцев, которые, я полагаю, не изменятся. Однако вам нужно хотя бы раз запустить все эти файлы, чтобы создать такой кеш.
Я также мог бы предложить использовать многопоточный подход с использованием pcntl_fork, если он доступен в вашей ОС. Проверять, выписываться http://php.net/manual/en/function.pcntl-fork.php
Других решений пока нет …