epoll, kqueue, / dev / poll .... расширения для PHP - PullRequest
9 голосов
/ 07 марта 2012

Существует ли расширение PHP (стабильность не имеет значения), которое позволяет выполнять прямые опросы epoll, kqueue, / dev / poll без прохождения расширений libevent или libev?

Ответы [ 3 ]

2 голосов
/ 14 февраля 2013

Inotify

Вы не указываете, какие архитектуры должны поддерживаться расширением.Но если Linux-only является опцией, вы можете использовать inotify , который:

  • , кажется, имеет более стабильное расширение
  • обеспечиваетпохожий функционал.

php-inotifytools - еще одно возможное расширение.

Вот обширная, автономная статья , показывающая, как работает inotify икак использовать C API.

Кроме того, судя по заключению статьи Роберта Лава: Intro для inotify , inotify имеет очень хорошую производительность:

inotify - это простая, но мощная система уведомлений об изменениях файлов с интуитивно понятным пользовательским интерфейсом, отличной производительностью, поддержкой множества различных событий и многочисленными функциями.inotify в настоящее время используется в различных проектах, включая Beagle, продвинутую систему индексирования рабочего стола, и Gamin, замену FAM.

Роберт Лав - уважаемый хакер ядра Linux,и автор справочника Linux Kernel Development (который мне принадлежит).

0 голосов
/ 28 февраля 2014

Существует расширение PECL, предоставляющее классы Event и EventBase, которые могут работать с несколькими вещами, а также с epoll.

См .: http://www.php.net/manual/en/event.examples.php

Извините, яЯ не могу предоставить образец, отличный от того, который вы найдете по ссылке, потому что я с ним еще не работал.

Класс EventBase представляет базовую структуру события libevent.Он содержит набор событий и может опрашивать, чтобы определить, какие события являются активными.

У каждой базы событий есть метод или серверная часть, которую он использует, чтобы определить, какие события готовы.Распознаются следующие методы: select, poll, epoll, kqueue, devpoll, evport и win32.

Чтобы настроить использование базы событий или избежать использования специального внутреннего класса EventConfig.

0 голосов
/ 06 июля 2012

Сейчас libevent станет самой стабильной вещью, которую вы можете получить для PHP. Он поддерживает epoll в качестве бэкэнда.

Существует также экспериментальное расширение для libev . Он менее стабилен, чем свободный, но имеет более приятный OO API.

...