쓰기 및 읽기 잠금 기능이 있는 2개의 프로세스를 갖춘 무리를 사용하여 기아 방지

쓰기 및 읽기 잠금 기능이 있는 2개의 프로세스를 갖춘 무리를 사용하여 기아 방지

두 개의 스크립트가 있는데 이를 script1과 script2라고 하겠습니다.

script1은 2분마다 예약되어 실행하는 데 4분이 소요됩니다. script2는 30분마다 예약되어 실행하는 데 4분이 걸립니다. 현재 저는 script1과 script2가 동시에 실행되지 않도록 스크립트 내에서 무리를 사용하고 있습니다. 그러나 쓰기 잠금의 배타성으로 인해 script1도 동시에 실행되지 않습니다.

제 경우에는 script1의 병렬성을 허용하고 script2와의 비동시성을 허용하고 싶습니다. script1 인스턴스 사이에 읽기 잠금을 사용하면 문제는 script2에 대한 기아 상태가 발생하여 실행되지 않는다는 것입니다.

그렇게 할 수 있는 영리한 방법이 있나요?

쓰기 잠금이 요청되면 다음 읽기 잠금이 부여되지 않습니까? script2가 쓰기 잠금을 기다리는 동안 이것이 문제이기 때문에 읽기 잠금을 얻을 수 있는 script1의 다른 인스턴스가 있고 script2 인스턴스는 영원히 기다립니다.

관련 정보