一定并发量下,在硬盘上写入文件
程序员文章站
2024-01-09 12:14:40
...
参考了http://www.phpernote.com/php-function/929.html这篇文章的一些东西。 主要是应对,在有一定并发量的情况下,日志文件向磁盘上写入的问题。 其实fopen或fclose也会偶尔存在失败的情况,但这里没有对这个操作进行异常处理。 ?php/** * Created by PhpS
参考了http://www.phpernote.com/php-function/929.html这篇文章的一些东西。
主要是应对,在有一定并发量的情况下,日志文件向磁盘上写入的问题。
其实fopen或fclose也会偶尔存在失败的情况,但这里没有对这个操作进行异常处理。
= $max_size) { $new_log_file = '/logs/error_' . date('YmdHis') . '.log'; rename($log_file, $new_log_file); } } $fp=fopen($log_file,'a+'); if($fp){ $startTime=microtime(); do{ // 这个循环可以保证进程在尝试1m后,如果未能锁定文件,则放弃写入日志的操作 $canWrite=flock($fp,LOCK_EX); if(!$canWrite){ usleep(round(rand(0,100)*1000)); } }while((!$canWrite)&&((microtime()-$startTime)
上一篇: PHP中的串行化变量和序列化对象_PHP