Definisci prima cosa significa “un solo nodo esegue il cronjob”. Impedire esecuzioni simultanee e impedire un effetto aziendale ripetuto sono requisiti diversi. Uno scheduler condiviso coordina l'esecuzione; l'operazione deve restare sicura dopo un arresto anomalo e un nuovo tentativo.
Considera un job giornaliero di fatturazione distribuito su tre nodi NestJS. Vogliamo eseguire il lavoro previsto senza generare un'altra fattura quando un worker riparte.
1. Comprendi perché tutti i nodi avviano il task
Ogni istanza dell'applicazione registra il proprio callback cron. All'orario previsto, ciascuna può partire autonomamente:
