Sono un principiante con i plugin. Sto cercando di adattare un plugin che richiede circa un’ora per essere eseguito. Guardando /sidekiq, vedo che il lavoro viene eseguito ogni 30 minuti. Quindi, prima che il primo lavoro sia completato, un’altra istanza dello stesso lavoro inizia, creando risultati duplicati. Come posso evitarlo?
Un’opzione, naturalmente, è far sì che il lavoro venga eseguito nei suoi 30 minuti consentiti, ma ci sono altri vincoli e preferirei lasciarlo eseguire per tutto il tempo che desidera.
Ho provato questo, ma non sembra impedire l’esecuzione di una seconda istanza del lavoro:
Se il mutex si trova all’interno del blocco execute, significa semplicemente che si bloccherà lì in attesa di esso, il che comporta che vedrai due job in esecuzione: uno effettivamente in esecuzione e l’altro in attesa del mutex.
Forse vorresti controllarlo e restituire un valore anticipatamente se è presente un’altra istanza in esecuzione? È difficile indovinare conoscendo così poco sul caso d’uso esatto.