PHP Conference Japan 2024

关于事件持久化

默认情况下,每当一个挂起的事件变为活动状态(因为其文件描述符已准备好读取或写入,或者因为其超时时间已到期),它会在其回调函数执行之前立即变为非挂起状态。因此,为了使事件再次挂起,可以在回调函数内部再次对其调用 Event::add()

但是,如果在事件上设置了 Event::PERSIST 标志,则该事件是持久的。这意味着即使事件的回调函数被激活,该事件也会保持挂起状态。Event::del() 方法可以被调用以使其变为非挂起状态。

持久事件的超时时间会在每次事件的回调函数运行时重置。因此,如果有一个事件的标志为 Event::READ | Event::PERSIST 并且超时时间为五秒,则该事件将在以下情况下变为活动状态

  1. 每当套接字或文件描述符准备好读取时。

  2. 每当自事件上次变为活动状态以来已过去五秒钟时。

另请参阅 » 使用 Libevent 进行快速可移植的非阻塞网络编程,关于事件持久化

添加注释

用户贡献的笔记

此页面没有用户贡献的笔记。
To Top