【问题标题】:Is there any way to restrict number of users accesing the file有没有办法限制访问文件的用户数量
【发布时间】:2019-11-22 10:23:13
【问题描述】:

我在一个巨大的依赖环境中编码,其中运行多个进程。在这个生态系统中,几乎所有正在运行的进程都需要修改一个文件。

这里每个进程对于相同的文件路径都有不同的文件描述符。

有什么方法可以限制文件的打开,使得该文件只能打开一个实例,而所有其他实例都可以排队?

我已经尝试过互斥锁和羊群,但它们并没有真正达到目的。

请告诉我你觉得有什么帮助!

【问题讨论】:

  • 答案——如果有的话——将取决于操作系统。你能标记正确的吗?
  • flock 有什么问题?
  • flock 大大降低了我的系统速度。
  • @TanveerBadar linux os

标签: c++ file c++11 asynchronous


【解决方案1】:

1.如果所有进程都在同一台服务器上,可以试试os api,例如:

Linux: https://gavv.github.io/articles/file-locks/

窗口: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-lockfileex

2.如果所有进程不在同一台服务器上,则需要其他方式来做到这一点,例如:

zookeeper、redis 或临时锁文件。

3.如果你可以改变你的生态系统的拱门,你最好重新设计它。

一个“文件服务”访问所有文件,而其他服务只调用“文件服务”。

【讨论】:

  • 谢谢,但我不是建筑师。但更重要的是要求它必须是一个文件。是的,它在单个服务器上
猜你喜欢
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多