我正在运行一个带有 LAMP 系统的网站。
内容来自数据库。
出于缓存目的,我在我的网络服务器上创建文件(包含可缓存的内容)(通过fwrite()
)。
每隔一段时间我都会删除缓存文件(通过unlink()
)。
文件创建和删除是通过 cronjob 完成的。
我的问题是:当我网站的访问者当前正在浏览(=从网络服务器请求)文件 A.php 并且我试图写入或删除这个相同的文件 A.php 时会发生什么。
准确地说:如果我的 cronjob 发出unlink()
命令并同时将文件提供给用户会发生什么。
这会造成竞争条件吗?
我知道如何从 unlink 和 fwrite 操作中检索状态,所以只要这些函数返回 false(不能被删除/写入),我可以循环我的 unlink/fwrite 吗?
期待阅读您的意见/答案!