我正在一个巨大的依赖环境中进行编码,该环境中正在运行多个进程。在这个生态系统中,几乎所有正在运行的进程都需要修改一个文件。
在这里,每个进程对于相同的文件路径都具有不同的文件描述符。
有什么办法可以限制文件的打开,以便只能打开该文件的一个实例,并让所有其他实例排队?
我尝试过互斥和植绒,但是它们并没有真正达到目的。
请告诉我您认为有帮助的任何方式!
答案 0 :(得分:2)
1。如果所有进程都在同一服务器上,则可以尝试使用os api,例如:
linux: https://gavv.github.io/articles/file-locks/
windows: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-lockfileex
2。如果所有进程都不在同一服务器上,则需要其他方法来执行此操作,例如:
zookeeper,redis或临时锁定文件。
3。如果您可以更改生态系统的体系结构,则最好对其进行重新设计。
一个“文件服务”可访问所有文件,而其他服务仅调用“文件服务”。