Сначала определите, что означает «cronjob запускает только один узел». Предотвращение одновременного выполнения и предотвращение повторного бизнес-эффекта — разные требования. Общий планировщик координирует выполнение, а сама операция должна оставаться безопасной после сбоя и повтора.
Рассмотрим ежедневную задачу выставления счетов на трёх узлах NestJS. Нужно выполнить работу по расписанию, не создавая ещё один счёт при перезапуске worker.
1. Поймите, почему задачу запускают все узлы
Каждый экземпляр приложения регистрирует собственный cron callback. В назначенное время каждый может стартовать независимо:
