使用具有 2 个进程且具有写入和读取锁定的集群来避免饥饿

使用具有 2 个进程且具有写入和读取锁定的集群来避免饥饿

我有两个脚本,我们称它们为 script1 和 script2。

script1 每隔 2 分钟调度一次,执行需要 4 分钟。 script2 每隔 30 分钟调度一次,执行需要 4 分钟。目前,我在脚本中使用集群来确保 script1 和 script2 永远不会同时运行。然而,写锁的排他性导致 script1 永远不会同时执行。

就我而言,我希望允许 script1 的并行性和与 script2 的非并发性。如果我在 script1 的实例之间使用读锁,问题是我将导致 script2 饥饿,它永远不会被执行。

有什么聪明的方法可以做到这一点吗?

也就是说一旦有一个写锁被问到后面的读锁都不会被授予?因为这是 script2 等待写锁时出现的问题,所以 script1 的其他实例能够获得读锁,而 script2 实例则永远等待

相关内容