gpt4 book ai didi

java - NFS 客户端锁定当前正在远程 NFS 服务器中写入的文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:32 26 4
gpt4 key购买 nike

我已经在我的本地机器上安装了一个 NFS 挂载(所以,我想我的机器是 NFS 客户端)并且一个文件正在被托管 NFS 挂载的远程机器(NFS 服务器)写入 NFS 挂载中。现在,我如何使用 JAVA 检测到在我从本地计算机读取文件之前写入远程计算机的文件已关闭?

或者,有没有其他方法可以实现我想要的?

编辑:我还想提一下,我无法控制远程 NFS 服务器。我只能以只读模式挂载。

最佳答案

正如您所说,您无法控制 NFS 服务器,也无法控制更新 NFS 服务器上文件的程序,因此您无能为力。您唯一可以真正利用的事实是,当文件更新时,其修改时间也会更新。使用 File.lastModified(),您的 Java 客户端应该可以使用它。如果您的应用程序记得上次修改日期,那么您至少可以知道自上次读取以来是否有数据要处理。这绝对不是完美的。存在竞争条件等,但取决于您的应用程序究竟需要/做什么,这可能就足够了。您无法判断文件在服务器上是关闭还是打开。

如果文件修改显示缓慢,您还可以使用 noac 挂载选项进行挂载。虽然这会损害常规 NFS 客户端上的 NFS 性能,但如果您的机器没有在该驱动器上使用大量其他 NFS 文件,它可能对您有用。参见“man nfs”。

作为旁注,我看不出文件锁定会有帮助,因为您没有给出 NFS 服务器上的应用程序无论如何都使用锁的迹象。

关于java - NFS 客户端锁定当前正在远程 NFS 服务器中写入的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13681559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com