nestjs-scheduling

Installation
SKILL.md

Task Scheduling & Jobs

Priority: P1 (OPERATIONAL)

Workflow: Add Scheduled Task

  1. Register ScheduleModule — Import ScheduleModule.forRoot() in AppModule.
  2. Create cron handler — Decorate service method with @Cron(CronExpression.*).
  3. Add distributed lock — Apply Redis lock decorator to prevent multi-pod duplication.
  4. Offload heavy work — Push job IDs to BullMQ; let workers process them.
  5. Wrap in try/catch — Uncaught exceptions in cron handlers crash entire Node process.
  6. Verify — Test with 2+ instances to confirm only one acquires lock.

Problem & Solution

  • Problem: @Cron() runs on every instance. In K8s with 3 pods, your "Daily Report" runs 3 times.
  • Solution: Distributed Locking using Redis.
  • Pattern: Using decorator to wrap cron method.
  • Logic: SET resource_name my_random_value NX PX 30000 (Redis Atomic Set).
Installs
1
GitHub Stars
521
First Seen
14 days ago
nestjs-scheduling — hoangnguyen0403/agent-skills-standard