Sou novo em plugins. Estou tentando adaptar um plugin que leva cerca de uma hora para ser executado. Ao analisar /sidekiq, vejo que o job está sendo executado a cada 30 minutos. Assim, antes que o primeiro job termine, outra instância do mesmo job é iniciada, criando resultados duplicados. Como posso evitar isso?
Uma opção, é claro, seria fazer com que o job seja executado dentro do tempo permitido de 30 minutos, mas existem outras restrições, e eu preferiria deixá-lo rodar pelo tempo que precisar.
Tentei o seguinte, mas parece que não impede que uma segunda instância do job seja executada:
Se o mutex está dentro do bloco execute, isso significa apenas que ele bloqueará ali, aguardando por ele, ou seja, você verá dois jobs em execução: um realmente rodando e outro aguardando o mutex.
Talvez você queira verificar isso e retornar antecipadamente se houver outra instância em execução? É difícil adivinhar sabendo tão pouco sobre o caso de uso exato.