Здравствуйте, нужна помощь в следующем вопросе.
На сайте есть необходимость постоянной обработки больших циклов (обновление бд через цикл). Так как на хостинге стоят ограничения на использование процессорного времени, приходиться разбивать цикл на несколько маленьких и запускать их цепочкой.
Выглядит это так:
Файл 1.php
PHP:
скопировать код в буфер обмена
include '../database.php'; if (isset($_GET['limit'])) { } else { $limit = 0; } FROM `table` ORDER BY `table_id` ASC LIMIT $limit, 10"); if ($count_sql > 0) //если выбрались какие-то данные { for ($i=0; $i<$count_sql; $i++) { //обрабатываем данные и обновляем таблицу } $limit = $limit + 10; //увеличиваем лимит $href = '1.php?limit='.$limit; print '<script type="text/javascript"> function doit() { window.location.href="'.$href.'"; } setTimeout(doit, 2000); </script>'; // и перезапускаем файл } else //если все данные уже обработаны, запускаем второй файл { $href = '2.php?limit=0'; print '<script type="text/javascript"> function doit() { window.location.href="'.$href.'"; } setTimeout(doit, 2000); </script>'; }
При запуске руками в браузере файлы работают нормально, но в crontab нет браузера, который бы выполнял js или header(location).
Как реализовать такой редирект в crontab?(Отредактировано автором: 10 Ноября, 2013 - 14:26:32)
|