我正在运行一个大部分时间都在休眠的 CLI 脚本。脚本每隔 10 秒左右执行一次。问题是,脚本在休眠时占用 94% 的 CPU。
我的设置方式是:
while(1){
sleep(10);
doStuff();
}
虽然这按预期工作,但存在一个明显的问题。在 C++/Java 中,我可以简单地设置一个定时器来消除循环问题。另外,我希望我不需要 cron 作业。
有没有其他方法可以做到这一点?
更新
显然,我的原始脚本(相当大)从未实际上进入休眠模式,因此 while 循环运行未中断并消耗 CPU 周期。对于遇到同样问题的任何人,请确保您不是这种情况!
最佳答案
过去,当我需要使 PHP 脚本成为守护进程时,我会使用此处概述的 PEAR 模块:http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/
如果你不想使用 PEAR 模块,你可以检查它的源代码并做类似的事情。
关于PHP sleep() 导致 CPU 使用率过高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12380529/