使用具有 2 個進程且具有寫入和讀取鎖定的叢集來避免飢餓

使用具有 2 個進程且具有寫入和讀取鎖定的叢集來避免飢餓

我有兩個腳本,我們稱它們為 script1 和 script2。

script1 每隔 2 分鐘調度一次,執行需要 4 分鐘。目前,我在腳本中使用叢集來確保 script1 和 script2 永遠不會同時運行。然而,寫入鎖的排他性導致 script1 永遠不會同時執行。

就我而言,我希望允許 script1 的並行性和與 script2 的非並發性。如果我在 script1 的實例之間使用讀鎖,問題是我將導致 script2 飢餓,它永遠不會被執行。

有什麼聰明的方法可以做到這一點嗎?

也就是說一旦有寫鎖被問到後面的讀鎖都不會被授予?因為這是 script2 等待寫鎖時出現的問題,所以 script1 的其他實例能夠獲得讀鎖,而 script2 實例則永遠等待

相關內容