我有兩個Win32程序:「計劃A」,一個網絡接口,以及「計劃B」,一名工人計劃,上文件的集合操作。 「程序A」告訴「程序B」對一組文件執行操作,「程序B」執行該操作,並向「程序A」發出信號表明它已完成。鎖定多個程序文件訪問
現在,情況如下:在不同的計算機上可能存在多個「程序A」和「程序B」,訪問存儲在網絡共享中的文件。我需要確保一次只有一個「程序B」正在訪問一組文件。
我可以使用鎖定文件來做到這一點,但這些問題有我需要處理的問題(比如不會離開,如果擁有的進程崩潰)。我不認爲我可以使用傳統的文件鎖定,因爲我的架構需要「程序A」來控制鎖定,而「程序B」訪問這些文件。有沒有我沒有看到的解決方案,比如「全網互斥」?
爲什麼不與主機上運行的文件進行交互,一個「B計劃」?所有其他「程序A」通過網絡套接字連接到它並告訴它開始工作。 – psyklopz
@psyklopz,「程序B」是一個現有的程序,嵌入了約20年的僵化設計決策(其中包括非常強大的單線程)。它執行的操作也是CPU密集型的,所以我可能需要在多臺服務器上運行副本來管理負載。 – Mark
聽起來像你需要一個數據庫。看起來你試圖自己實現一個,並且聽起來很脆弱。你真的不應該試圖重塑這個特殊的車輪。 –