Избегайте голодания с помощью стаи с 2 процессами с блокировкой записи и чтения

У меня есть два сценария, назовем их script1 и script2.

Сценарий1 назначается каждые 2 минуты, и выполнение выполнения сценария занимает 4 минуты, каждые 30 минут – на выполнение 4 минут. В настоящий момент я использую flock в сценариях, чтобы гарантировать, что сценарий1 и скрипт2 никогда не запускаются одновременно. Однако исключительность блокировки записи заставляет сценарий1 никогда не выполняться одновременно.

В моем случае я хотел бы разрешить параллелизм сценария1 и не параллелизм с script2. Если я использую блокировку чтения между экземплярами сценария1, проблема в том, что я вызову голод для скрипта2, который он никогда не будет выполнен.

Есть ли разумный способ сделать это?

То есть, когда блокировка записи запрашивается, следующая блокировка чтения не предоставляется? Поскольку это проблема, в то время как script2 ждет блокировки записи, есть другие экземпляры сценария1, которые могут получить блокировку чтения и экземпляр script2 навсегда

Interesting Posts
Linux и Unix - лучшая ОС в мире.