нельзя получить средствами языка2. Самое интересное, что актуально. Надо-ли ставить в скрипт дополнительный счетчик времени, или можно получить remained до max_execution_time средствами языка?
в принципе схема правильная. Есть недостатки и следующие пути решения:Схема такая:
Скрипт запускается => отрабатывает свою (небольшую) часть данных => запускает выполнение следующего скрипта (с уходом в /dev/null и & => ...
Крон в свою очередь раз в минуту чекает, должен ли скрипт работать (можно эту информацию давать через файлы с номерами процессов скрипта), если должен, лезет в список процессов, если процесс отсутствует, перезапускает скрипт.
Ну так проверка времени как раз и нужна для того чтобы определить какую часть данных должен обработать скрипт. Т.к. данные могут обрабатываться с разной скорость и гадать разбивая их на части вручную не программерское дело. К тому же излишняя фрагментация, т.е. когда данные разбиты на больше частей, чем это действительно нужно чтобы вписаться в timelimit в некоторых случаях может существенно увеличить время работы.отрабатывает свою (небольшую) часть данных
идальше он анализирует свое время выполнения и если лимит приближается к тому
как-то не совсем взаимосвязаныостаточное время не вычисляется
ну ты тоже считаешь время до лимита, просто насчет некоторой константы ты не совсем прав, так как это значение не постоянно и зависит от сервера, на одном сервере, можно спокойно запускать процессы по десятку минут, на другом же может быть ограничение в 10 секунд.можно любого известного политика за его фразы разгромить в пух и прах, если их рассматривать вне контекста. если тебе что-то непонятно, то спрашивай, хватит тролитькак-то не совсем взаимосвязаны

А http://ru.php.net/manual/en/function.getrusage.php не подойдёт разве? Там есть ru_utime.tv_sec, который вероятно и нужен.Автор оригинала: Alexandre
нельзя получить средствами языка
да ну?а
> Fatal error: Maximum execution time of 30 seconds exceeded in
- необрабатываемый FATAL
class TimeoutCatcher {
protected $enabled = false;
public function __construct() {
register_shutdown_function( array($this, 'onShutdown') );
}
public function enable() {
$this->enabled = true;
}
public function disable() {
$this->enabled = false;
}
public function onShutdown() {
if ($this->enabled) {
print "Timed out!\n";
}
}
}
// test
set_time_limit(1);
$TimeoutCatcher = new TimeoutCatcher;
$TimeoutCatcher->enable();
// long operation
for ($i=0; $i<50000000; ++$i) { /* pass */ }
// end of long operation
$TimeoutCatcher->disable();
print "Finished!\n";
Интересно, сколько за свою работу получают фрилансеры, пишушие скрипты для заказчиков, которым дорого потратить несколько баксов в месяц на нормальный хостинг.Если бы скрипты делались только для себя и своих серваков, было бы всё намного проще