我正在运行一个带有灯系统的网站。
内容来自数据库。
出于缓存的目的,我在我的via服务器上创建文件(包含可缓存的内容)(通过fwrite())。
每隔一段时间,我就会删除缓存文件(通过unlink())。
文件的创建和删除是通过cronjob完成的。
我的问题是:当我网站的访问者当前正在浏览(=从when服务器请求)文件A.php,而我正在尝试写入或删除这个文件A.php时,会发生什么情况。
准确地说:如果我的cronjob发出unlink()命令,同时将文件提供给用户,会发生什么情况。
这会产生竞争条件吗?
我知道如何从unlink和fwrite操作中检索状态,那么只要这些函数返回false (无法删除/写入),我可以在unlink/fwrite上循环吗?
期待阅读您的意见/答案!
发布于 2013-07-11 19:09:40
是的,这显然会造成竞争状况。从job服务器请求文件和从cron作业中删除文件是两个独立的过程,您无法知道其中一个正在对文件做什么。
https://stackoverflow.com/questions/17591772
复制相似问题