Eu tenho dois scripts, vamos chamá-los de script1 e script2.
O script1 é agendado a cada 2 minutos e leva 4 minutos para ser executado. O script2 é agendado a cada 30 minutos e leva 4 minutos para ser executado. No momento estou usando o rebanho nos scripts para garantir que o script1 e o script2 nunca sejam executados simultaneamente. No entanto, a exclusividade do bloqueio de gravação faz com que o script1 também nunca seja executado simultaneamente.
No meu caso, gostaria de permitir o paralelismo do script1 e a não simultaneidade com o script2. Se eu usar o bloqueio de leitura entre as instâncias do script1, o problema é que causarei uma fome no script2 e ele nunca será executado.
Existe uma maneira inteligente de fazer isso?
Ou seja, quando um bloqueio de gravação é solicitado, o seguinte bloqueio de leitura não é concedido? Porque este é o problema enquanto o script2 espera por um bloqueio de gravação, existem outras instâncias do script1 que são capazes de obter o bloqueio de leitura e a instância do script2 espera para sempre