Есть задача, нужно из таблицы брать некоторые задания для выполнения, их может быть и не быть в момент времени Х, а может быть много, по этим "задачам" нужно выполнять некоторое действия (обращения к внешней системе через xmlrpc запись в БД), данные должны обрабатываться довольно быстро, что бы задачи в БД не копились. Есть несколько решений(придумал на вскидку), первое это crond, второе это while(1){погнали чекать и обрабатывать задания; sleep(X)} и третье более заманчивое решение (которое я бы реализовал лучше на perl, но надо именно на PHP!), это сделать демона который бы запускал в "потоках" под процессы, контролировал их выполнения (в зависимости от кода завершения потомка решал бы что делать с заданиями и так далее). Демон еще хорош тем, что если заданий будет много (а на одно задание может уйти от 2 до 60 секунд, это можно понять от типа задания), можно действительно быстро разгребать все задания довольно быстро, за счет множества процессов потомков, которые по сути выполняют одинаковую операцию но с разным кол-ом данных. Собственно вопрос, кто-нибудь делал па php деманы? Можно ли на этом языке реализовать полноценный демон со всеми свойствами которые присущи деманам в POSIX системах?
сам не делал, но по отзывам сделать демон на php особого гемора не составляет. Вроде бы http://phpdaemon.net/ - этот фреймворк облегчает задачу. http://habrahabr.ru/blogs/php/79377/ - о нем на Хабре.
http://ru2.php.net/manual/en/refs.filep ... rocess.php Все, что хотите. phpDaemon - это фреймворк для асинхронной обработки входящих запросов, т.е. не совсем то. Тут все банально - бесконечный цикл с проверкой базы и форки. Не понимаю, в чем проблема, особо если "сделал бы на перле".
проблема в том, что я не знаю на сколько он стабильно себя ведет, сейчас почитал в интерентах, и пришел к выводу, что достаточно надежные решения можно делать.
Ну посадите в крон скриптик на проверку - жив ли мастер-процесс, и запуск его, если помер. Этот демон все-равно перезапускать бы переодически, дабы исключить большие утечки памяти.
думал я както осилить этот фреймворк. Перечитал все статьи на хабре о нем (там штук 5), прочитал мануал на гитхабе, прочитал вопросы от юзеров на том же гитхабе. Начал ставить себе. Трахался два дня, с трудом удалось запустить 1 example из .. пяти, или сколько их там. Решил спросить автора. Нарыл его имейл, написал ему лично - там вопросов на 5 минут было. Он мне написал, что мол "пиши в группы". Я вообще ниипу, что за группы. Начал копаться в его контактах и смотреть куда там вообще можно написать. Нашел раздел на гитхабе, где спрашивали люди. Задал вопрос туда. Он мне там отвечает, что это не группы, то есть я опять не туда написал. Я его мысленно нафиг послал с такой поддержкой и забил на тот пхпдемон, тем более что там сплошной косяк с сессиями был, что юзеру могла достаться чужая сессия. Потому ну его в пень Лучше 440-го спросить по обычным демонам, он их писал и делал доклад на devconf, если не ошибаюсь. Там гемороя тоже хватает, но написать простое с использованием цикла и форков - вполне возможно.
tommyangelo Не рекомендуйте то, чего не пробовали сами нет, не облегчает. Он лишь делает только то что должен делать... теоретически Апельсин +2 vladikamira Да, есть инструменты, только проверьте, что они доступны на хостинге http://www.php.net/manual/en/book.pcntl.php