我有捕获在一个数据库表中的某些事件基于PHP的Web应用程序。它还具有这些捕获事件的可视化:一个列出由ajax控制的事件的html表。进程间推捕获的事件
我想添加一个可选的“活”的功能:按下一个按钮(“开启”)的那刻起将被插入到已经可见表捕获的所有事件之后。有三件事情必须发生:注意事件,获取事件数据并将其插入表中。为了让服务器负载保持在合理范围内,我不想用ajax请求轮询新事件,而是我更喜欢长轮询策略。
的问题,这显然是做一个长轮询Ajax调用时服务器相对人有监视的事件。由于事件是通过PHP脚本注册的,因此没有简单的方法可以注意到该事件,而无需再次轮询数据库以进行更改。这是因为捕获操作在另一个进程中运行,而不是观察长轮询请求。我环顾四周寻找一种可用于这种进程间通信的机制,就像我从Linux下的胖客户端那里了解到的那样。事实上,PHP扩展了信号量,共享内存甚至是posix。但是他们都只存在于linux(或unix like)系统下。尽管通常情况下该应用程序可能会在极少数情况下在MS-Windows系统下使用。
所以我简单的问题是:是否有这通常是对所有(大多数)系统,可以推动这样的事件PHP脚本服务长轮询Ajax请求任何可用的手段?因为我在其他地方已经有了一个事件,所以不经常查询文件或数据库?