码迷,mamicode.com
首页 > Web开发 > 详细

MVC框架的模板缓存

时间:2020-06-29 11:22:02      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:情况下   write   项目   进程   flock   重新编译   lca   content   多进程   

在一次项目中,由于没有开启模板缓存,每次都是重新编译模板输出,在多进程情况下,就有可能会发生同时写入一个文件的情况,就会发生“缓存写入失败”的错误。

开启模板缓存可以缓解这个错误,但是在缓存失效,重新编译时,又有可能发生这个错误。

所以,可以通过给文件加锁来解决,当前进程加锁,正常写入,其他进程阻塞,等待锁

$fileCache = fopen($tmplCacheFile,"w+");
if(flock($fileCache,LOCK_EX)){
  //加锁成功,说明没有进程在写入该文件
  fwrite($fileCache,trim($tmplContent));
  //解锁
   flock($fileCache,LOCK_UN);
}
fclose($fileCache);

 

MVC框架的模板缓存

标签:情况下   write   项目   进程   flock   重新编译   lca   content   多进程   

原文地址:https://www.cnblogs.com/undefined-j/p/13206575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!