먼저 ‘한 노드만 cronjob을 실행한다’의 의미를 정의합니다. 동시 실행 방지와 업무 효과의 중복 방지는 다른 요구입니다. 공유 스케줄러가 실행을 조정하더라도 작업 자체가 장애 후 재시도에 안전해야 합니다.
세 NestJS 노드에 배포된 일일 청구 작업을 생각해 봅시다. 예정된 일은 수행하되 워커가 재시작할 때 청구서를 또 만들지 않아야 합니다.
1. 모든 노드가 작업을 시작하는 이유를 이해합니다
각 애플리케이션 인스턴스는 자체 cron 콜백을 등록합니다. 정해진 시간이 되면 각각 독립적으로 시작할 수 있습니다.
00:00 -> Node A -> invoice task
-> Node B -> invoice task
-> Node C -> invoice task
