Evite morir de hambre usando rebaño con 2 procesos con bloqueo de escritura y lectura

Evite morir de hambre usando rebaño con 2 procesos con bloqueo de escritura y lectura

Tengo dos scripts, llamémoslos script1 y script2.

El script1 está programado cada 2 minutos y tarda 4 minutos en ejecutarse. El script2 está programado cada 30 minutos y tarda 4 minutos en ejecutarse. En este momento estoy usando rebaño dentro de los scripts para asegurar que script1 y script2 nunca se ejecuten al mismo tiempo. Sin embargo, la exclusividad del bloqueo de escritura hace que el script1 tampoco se ejecute nunca al mismo tiempo.

En mi caso, me gustaría permitir el paralelismo de script1 y la no concurrencia con script2. Si uso el bloqueo de lectura entre las instancias de script1, el problema es que provocaré una inanición de script2 que nunca se ejecutará.

¿Existe una manera inteligente de hacer eso?

Es decir, una vez que se solicita un bloqueo de escritura, ¿no se concede el siguiente bloqueo de lectura? Debido a que este es el problema mientras script2 espera un bloqueo de escritura, hay otras instancias de script1 que pueden obtener el bloqueo de lectura y la instancia de script2 espera para siempre.

información relacionada