假设我们需要一些锁定脚本,以确保两个脚本永远不会同时运行:
if(file_get_contents('test.txt')) { // this is always empty...
die("Another script is running in background!");
}
file_put_contents('test.txt', 'busy!');
sleep(10); // heavy work here
file_put_contents('test.txt', '');
它仍然允许我同时运行两个脚本。看起来结果file_get_contents()
被缓存了?
如何解决?我想使用文件,而不是数据库。
编辑:我已经设法使用flock()完成了锁定脚本(感谢Levi Morrison)
无论如何,我仍然很好奇为什么file_get_contents
会以如此意想不到的行为工作?