又一段代码如下,如果文件修改时间超过1分钟,则从数据库里查询一次,并写进一个外部文件。
请教一下,如果同1秒钟又若干不同的IP用户打开这个页面,php代码执行写入,会不会引发什么潜在的错误?
若有,有何方法避免?谢谢。if((time()-filemtime(filename)) > 60){
//mysql_query; query时间小于2秒
file_put_contents($filename, $query_contents);
}
file_get_contents($filename);
//读出该文件里的内容
请教一下,如果同1秒钟又若干不同的IP用户打开这个页面,php代码执行写入,会不会引发什么潜在的错误?
若有,有何方法避免?谢谢。if((time()-filemtime(filename)) > 60){
//mysql_query; query时间小于2秒
file_put_contents($filename, $query_contents);
}
file_get_contents($filename);
//读出该文件里的内容
至少 file_put_contents 要有 LOCK_EX 参数彻底的防止共享冲突,需要使用数据库
lock();
.... unlock();
}其中锁建议放到共享内存里,内存的速度非常快,能承受的并发量应当远大于服务器能承受的并发量了。在linux下可以用apc,memcache,windows下可以用wincache
老大:怎么用 LOCK_EX ?能不能给个例子?
应该可以的吧