Lat*_*tze 26 javascript php settimeout
排序的问题说,这一切-有哪个不一样的功能的JavaScript函数的setTimeout()的PHP?我搜索过php.net,我似乎找不到任何...
Pek*_*ica 11
没有办法延迟执行当前脚本中的部分代码.这也没有多大意义,因为PHP脚本的处理完全在服务器端进行,你只会延迟脚本的整体执行.有sleep()
,但会简单地停止过程一定时间.
当然,您可以使用cron作业等安排PHP脚本在特定时间运行.
关于PHP中的计时器,我想注意一些事项:
1)PHP中的定时器在长时间运行的脚本(守护进程,也许是CLI脚本)中使用时有意义.因此,如果您没有开发这种应用程序,那么您不需要计时器.
2)定时器可以是阻塞和非阻塞.如果您正在使用sleep()
,那么它是一个阻塞计时器,因为您的脚本只会冻结指定的时间.对于许多任务,阻止计时器是好的.例如,每10秒发送一次统计信息.可以阻止脚本:
while (true) {
sendStat();
sleep(10);
}
Run Code Online (Sandbox Code Playgroud)
3)非阻塞定时器仅在事件驱动的应用程序中有意义,例如websocket-server.在这样的应用程序中,事件可以随时发生(例如传入连接),因此您不能sleep()
(显然)阻止您的应用程序.为此,有一些事件循环库,如reactphp/event-loop,它允许您以非阻塞方式处理多个流,并且还具有计时器/间隔功能.
4)PHP中的非阻塞超时是可能的.
它可以通过stream_select()
带有timeout参数的函数来实现(请参阅它如何在reactphp/event-loop StreamSelectLoop :: run()中实现).
5)有PHP扩展一样libevent
,libev
,event
这让计时器实现(如果你想要去的铁杆)
归档时间: |
|
查看次数: |
61029 次 |
最近记录: |