PHP sleep() 导致 CPU 使用率过高

标签 php

我正在运行一个大部分时间都在休眠的 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/

相关文章:

php api元评论家

PHP - foreach 循环的效率

php - geoip-database[-extra] 与 geoip-database-contrib

PHP随机行帮助

php - Codeigniter 事件记录从两个不同的列值中获取行

php - 如何链接我的面包屑上的链接?

php - 如何将生成的图像文件移动到 PHP 中的自定义目录?

php - 输出中获得的值未按正确的顺序排序

php - 如何在 PHP 中正确获取 Cookie 的值?

php - 如何在值包含两个或多个单词的数组中搜索字符串 (PHP)