主要实现功能:
linux服务器上使用php脚本做每隔10秒的定时查表任务。
当前实现方法:
php脚本进程守护工具:
supervisor
php脚本逻辑:
while(true) {
// some logic code...
// 查询不大的表中的特定数据并处理
sleep(10);
}
1. 请问这样做会不会对服务器带来很大的压力呢?
2. if 1. true, 如果会的话,压力会主要出在什么地方?
3. php脚本的类似定时任务有什么更优方法实现?
伊谢尔伦2017-04-11 09:59:47
linux中sleep是挂起进程或是线程了,每10s检测一次的频率算很小了,不大可能给系统造成压力。定时检查在一些知名开源的项目中也很常用,尽管用就是了。单独开一个线程或是进程专门用作定时检测。
高洛峰2017-04-11 09:59:47
如果不sleep的话,那CPU使用率还是很高的。之前有在阿里云测试过,看过监控。CPU基本在50%左右(不过服务器配置也偏低,个人用);加上sleep,CPU基本1%以内
不过个人的感觉影响的因素,不单是CPU。比如带宽,硬盘读写,内存等均有可能。只是看业务逻辑不同,影响的因素也不同~
另建议可以用
usleep
,当时好像是折算后0.1秒的时候性能就区别比较大(不过具体数值忘记了,自己测吧!)