Evitar a privação usando o flock com 2 processos com bloqueio de gravação e leitura

2

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 bando dentro dos scripts para garantir que script1 e script2 nunca sejam executados simultaneamente. No entanto, a exclusividade do bloqueio de gravação faz com que o script1 nunca seja executado simultaneamente.

No meu caso, gostaria de permitir o paralelismo de script1 e não simultaneidade com script2. Se eu usar o lock de leitura entre as instâncias do script1, o problema é que causarei uma fome para o script2 que ele nunca será executado.

Existe uma maneira inteligente de fazer isso?

Isso é uma vez que um bloqueio de gravação é solicitado que o bloqueio de leitura a seguir não seja concedido? Como esse é o problema, enquanto script2 espera por um bloqueio de gravação, há outras instâncias de script1 que são capazes de obter o bloqueio de leitura e a instância de script2 aguardar para sempre

    
por Kerby82 20.06.2016 / 18:50

0 respostas