epoll、kqueue、/dev/poll。。。。PHP扩展
是否有一个PHP扩展(稳定性与此无关),它允许直接epoll、kqueue和/dev/poll轮询函数,而无需经过libevent或libev扩展?现在libevent将是PHP最稳定的功能。它支持epoll作为后端 还有一个问题。它的稳定性不如libevent,但有更好的ooapi。Inotify 您没有指定扩展应该支持哪些体系结构。但是,如果您可以使用Linux only选项,那么:epoll、kqueue、/dev/poll。。。。PHP扩展,php,events,epoll,Php,Events,Epoll,是否有一个PHP扩展(稳定性与此无关),它允许直接epoll、kqueue和/dev/poll轮询函数,而无需经过libevent或libev扩展?现在libevent将是PHP最稳定的功能。它支持epoll作为后端 还有一个问题。它的稳定性不如libevent,但有更好的ooapi。Inotify 您没有指定扩展应该支持哪些体系结构。但是,如果您可以使用Linux only选项,那么: 似乎有一个比较稳定的 提供类似的功能 是另一种可能的扩展 下面展示了inotify的工作原理以及如何使用
- 似乎有一个比较稳定的
- 提供类似的功能李>
是一位备受尊敬的Linux内核黑客,也是这本参考书的作者(我恰好拥有这本书)。有一个PECL扩展,提供了类
Event
和EventBase
,可以处理多种事情,也可以处理epoll
见:
对不起,我不能提供一个样本,除了你会在链接上找到,因为我还没有与此工作
EventBase类表示libevent的事件基结构。它坚持
一组事件,可以轮询以确定哪些事件处于活动状态
每个事件库都有一个方法或后端,用于确定
哪些活动已准备就绪。公认的方法有:选择、投票、,
epoll、kqueue、devpoll、evport和win32
配置要使用的事件库,或避免使用特定的后端EventConfig
类可以使用
而且已经存在了——你在尝试做什么,而这两种方法中的任何一种都无法实现?据我所知,轮询在OSI模型中是一种基础非常低的协议。因此,它不应该从基于表示级别的语言访问。你到底想实现什么?@DaveRandom Performance。。。可靠性…@DaveRandom“它旨在取代旧的POSIX select(2)和poll(2)系统调用,以在要求更高的应用程序中实现更好的性能…”-
socket_select()
对select
进行系统调用。正如我提到的,我知道libevent没有一个稳定的版本,因此它确实不是一个可行的选项,也不会有任何其他不稳定的选项,因此我不知道这如何回答我的问题,更像是一个有用的注释。因此,您不会使用已经在beta中运行了4年的扩展,但是您会使用您自己编写的扩展(并且只支持epoll而不支持其他后端)?随你便。:)为什么您要使用4年多没有被积极开发的产品,并且仍然处于beta测试状态的产品级代码?对不起,我遗漏了什么吗。。libevent自2010年6月7日起被标记为稳定版本,最新版本日期为11月(2012年11月18日发布的libevent-2.0.21-stable.tar.gz),或者您正在谈论的是其他libevent吗?(libevent.org)@itsid我们正在谈论。我添加了一条评论,提到Robert Love对inotifyth的分析。这确实很有趣,它说您似乎仍然需要轮询inotify描述符,对吗?文件描述符累积了所有异步事件,因此,即使您必须阅读它才能获得事件,无论您多久检查一次,都不会丢失任何事件。Inotify不提供回调机制(我想这就是您要问的),但Inotify的文件描述符是select、poll、epoll和read。一个简单的回调系统可以通过一个专用线程轻松实现。。。我正在搜索一个扩展,该扩展不需要使用libevent或libev作为后端,并提供对epoll、kqueue或/dev/poll的直接访问,我可以用PHP直接轮询,就像您现在使用select一样,不过感谢您的响应:)