我有两个Win32程序:“计划A”,一个网络接口,以及“计划B”,一名工人计划,上文件的集合操作。 “程序A”告诉“程序B”对一组文件执行操作,“程序B”执行该操作,并向“程序A”发出信号表明它已完成。锁定多个程序文件访问
现在,情况如下:在不同的计算机上可能存在多个“程序A”和“程序B”,访问存储在网络共享中的文件。我需要确保一次只有一个“程序B”正在访问一组文件。
我可以使用锁定文件来做到这一点,但这些问题有我需要处理的问题(比如不会离开,如果拥有的进程崩溃)。我不认为我可以使用传统的文件锁定,因为我的架构需要“程序A”来控制锁定,而“程序B”访问这些文件。有没有我没有看到的解决方案,比如“全网互斥”?
为什么不与主机上运行的文件进行交互,一个“B计划”?所有其他“程序A”通过网络套接字连接到它并告诉它开始工作。 – psyklopz
@psyklopz,“程序B”是一个现有的程序,嵌入了约20年的僵化设计决策(其中包括非常强大的单线程)。它执行的操作也是CPU密集型的,所以我可能需要在多台服务器上运行副本来管理负载。 – Mark
听起来像你需要一个数据库。看起来你试图自己实现一个,并且听起来很脆弱。你真的不应该试图重塑这个特殊的车轮。 –