我的邮件服务器每分钟写一个文件,这很好,我很高兴它这样做。
但是在我的WebServer上,我想检查当前是否正在写入该文件,如果不是,请向用户显示下载链接。
我有什么方法可以做到这一点..
例如:运行一个循环,这个循环将继续查找,直到文件不再被写入,然后显示文件的下载链接?
我已经阅读了flock()
但我不认为这会有所帮助,因为另一个进程/操作系统实际上是在创建文件!
答案 0 :(得分:1)
您的写作脚本/应用程序/进程应该在开始写入主文件之前写入锁定文件(filename.lock
之类的空文件,然后在完成后删除它。这是常规锁定方法,但您的脚本只需要检查是否存在filename.lock
。如果是,则写入文件。
答案 1 :(得分:0)
如果没有其他人正在编写,您只能获取读或写锁。你不应该这样做。
此外,当用户下载文件时,文件可能同时发生了变化。你确定你对你想要的东西有正确的心理形象吗?