Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Как разбить выполнение цикла на части? |
Автор: Just123 14.3.2012, 11:10 | ||
Доброго дня, Подскажите пожалуйста, как разбить выполнение цикла на несколько частей. Это нужно для обход времени выполнения скрипта. Не хотелось бы использовать set_time_limit (0);
|
Автор: Vardoulacha 14.3.2012, 11:16 |
хранить где-то, допустим в текстовом файле номер последней итерации, запускать скрипт по заданию cron выполнять очередную порцию и место остановки записывать в файл, при следующем запуске стартовать оттуда где остановились в прошлый раз |
Автор: Just123 14.3.2012, 11:26 |
Vardoulacha, Важно, чтобы скрипт выполнялся полностью сразу т.к. данные могут меняться с течением времени. |
Автор: Just123 14.3.2012, 13:11 | ||
//Здорово. Очень содержательно. Пересмотр архитектуры наверняка даст ответ на вопрос " Как разбить выполнение цикла на части?" Пересматривать нечего, это даже не приложение, а скрипт для парсинга. Страниц много, вот и выполняется долгое время. Решение пока вижу только одно, разбить на N итераций и через каждые Y итераций выполнять header('Location: http://www.example.com/?итерация=№ последней итерации'); |
Автор: baldina 14.3.2012, 13:16 |
по-моему, нормально. хотя непонятно, почему Добавлено через 1 минуту и 40 секунд кстати можно попробовать PCNTL, хотя имхо овчинка выделки не стоит |
Автор: Just123 14.3.2012, 13:21 | ||||||||
Угу, думаю, остановлюсь на нем.
Ограничение на хостинге.
С PCNTL не знаком, думаю ознакомлюсь позже, сейчас и header'a хватит по идее. Спасибо за наводку. |
Автор: baldina 14.3.2012, 13:41 |
еще можно дергать при помощи AJAX. тогда какой-то вменяемый front-end можно слепить, например с прогресс-баром Добавлено через 1 минуту и 13 секунд да еще и параллельно выполнять итерации, если данные позволяют |
Автор: Just123 14.3.2012, 13:44 | ||
о! А это идея! Сейчас правда к сожалению сроки ужимают, но при допиливании позже обязательно сделаю. Спасибо! |