2013-04-04 4 views
0

Я пишу программу на PHP (не спрашиваю), которая должна контролировать набор каталогов, ожидающих появления файлов и обработки новичков.Мониторинг набора каталогов и генерации «событий», когда появляются новые файлы - может ли libevent или libev делать это?

Может ли libevent или libev (оба имеют соответствующие PHP-расширения) генерировать такие события? Я знаю, что основополагающие механизмы, используемые обоими (kqueue, epoll и т. Д.), Поддерживают это, но используют ли библиотеки функциональность?

Моя программа должна работать на Linux И Solaris, поэтому просто использование Inotify вне ...

Спасибо!

+0

Вы можете попробовать использовать команду 'watch'. – datasage

+0

тройки всегда работа cron –

+0

Действительно, Дагон? Работа cron? И как часто вы его запускаете? Каждую минуту? Инициализация всего процесса php для ничего (в большинстве случаев) и отсрочка обработки поданного файла в среднем на 30 секунд? Удивительная идея ... –

ответ

-1

Нет, вы не сможете сделать это с помощью libevent или libev, вам нужно использовать что-то вроде inotify/dnotify. Однако вы можете просмотреть дескрипторы файлов, полученные с помощью inotify с libevent или libev.

+0

Спасибо, Реми, но - как я указываю в самом вопросе - программа должна работать как на Linux, так и на Solaris, поэтому прямое использование inotify отсутствует. FAM (Gamin), похоже, делает это для меня на данный момент - красиво смотрю каталоги. К сожалению, это единственная вещь, которую он может сделать - мониторинг сокетов, например, не входит в его список возможностей ... –

0

Вы можете использовать libfam, чтобы узнавать о событиях в файлах и каталогах, а также использовать libev или libevent для просмотра самих сокетов (включая сокет, который вы получаете к демону FAM).

+0

Потому что я буду использовать два разных события-источника (FAM и libev (ent)), d нужны два разных потока, ожидающих каждого источника ... К сожалению, создание многопоточного приложения на PHP довольно сложно :-( –