epoll,kqueue,/ dev / poll .... PHP的扩展

时间:2012-03-07 16:57:55

标签: php events epoll

是否有PHP扩展(稳定性无关紧要)允许直接epoll,kqueue,/ dev / poll轮询功能而无需通过libevent或libev扩展?

3 个答案:

答案 0 :(得分:2)

inotify的

您没有指定扩展应支持的体系结构。但是,如果只选择Linux,则可以使用inotify,其中:

  • 似乎有一个更稳定的extension
  • 提供类似的功能。

php-inotifytools是另一种可能的扩展。

以下an extensive, self-contained article显示了inotify如何工作以及如何使用C API。

此外,根据Robert Love的文章Intro to inotify的结论判断,inotify有一个非常好的表现:

  

inotify是一个简单但功能强大的文件更改通知系统   直观的用户界面,出色的性能,支持众多   不同的事件和众多的功能。 inotify目前正在使用中   各种项目,包括Beagle,一种先进的桌面索引   系统和GAM,FAM的替代品。

Robert Love是一位备受尊敬的Linux内核黑客,也是参考书Linux Kernel Development的作者(我碰巧拥有)。

答案 1 :(得分:0)

现在,libevent将成为PHP可以获得的最稳定的东西。它支持epoll作为后端。

还有experimental extension for libev。它不如libevent那么稳定,但有一个更好的OO API。

答案 2 :(得分:0)

有一个PECL扩展提供了EventEventBase类,它们可以处理好几件事,也可以使用epoll

请参阅:http://www.php.net/manual/en/event.examples.php

很抱歉,我无法提供您在链接上找到的示例,因为我还没有使用此示例。

  

EventBase类表示libevent的事件基础结构。它拥有   一组事件,可以轮询以确定哪些事件是活动的。

     

每个事件库都有一个方法,或者用于确定的后端   哪些活动准备好了。公认的方法是:选择,民意调查,   epoll,kqueue,devpoll,evport和win32。

     

配置要使用的事件库,或避免使用特定的后端EventConfig   可以使用类。