Здравствуйте. Мне понадобилось написать один парсер на PHP и нужен запуск через консоль, чтобы он мог вести себя как демон. Предположим, что у меня есть некоторый массив $models примерно такого вида: Код (PHP): array(5) { [0]=> array(1) { ["props"]=> array(2) { [0]=> string(5) "prop0" [1]=> string(5) "prop1" } } [1]=> array(1) { ["props"]=> array(2) { [0]=> string(5) "prop2" [1]=> string(5) "prop3" } } [2]=> array(1) { ["props"]=> array(2) { [0]=> string(5) "prop4" [1]=> string(5) "prop5" } } [3]=> array(1) { ["props"]=> array(2) { [0]=> string(5) "prop6" [1]=> string(5) "prop7" } } [4]=> array(1) { ["props"]=> array(2) { [0]=> string(5) "prop8" [1]=> string(5) "prop9" } } } И следующий метод работает с ним: Код (PHP): private function getPropData($name, $filename = self::FILE) { exec('render ' . $name); if (!file_exists($filename)) echo 'Not exist' . PHP_EOL; $handle = fopen($filename, 'rb'); if ($handle === false) throw new Exception('Fail'); $contents = json_decode(fread($handle, filesize($filename))); fclose($handle); if (empty($contents)) { throw new Exception('File is empty'); } return $contents; } Код выше запускается в цикле для каждого prop (prop1,prop2...), и значение prop передается в переменную $name метода getPropData. 'exec' - выполняет команду 'render prop1' (пример для prop1), который записывает в файл, указанный в self::FILE, с флагом 'w' (каждый раз данные перезаписываются) данные в формате JSON. Далее в этом методе просто открывается файл, декодируются и возвращаются данные. Выполнение программы render для каждого вызова занимает примерно 5 секунд. Проблема заключается в том, что для некоторых prop exec не запускается или запускается, файл создается, но выдается исключение "File is empty". Возможно программа render не успевает закончить свою работу и php уже пытается открыть файл, но вроде же должно все последовательно происходить. Помогите разобраться, в чем дело. Надеюсь, понятно объяснил проблему. Если нет, то спрашивайте, постараюсь более развернуто ответить. PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Пищи в дб задачи, а потом пусть каждый демон отмечает задачу выполненной. Запускай, передавая айди задачи.