Scheduler Module

October 24, 2025 ยท View on GitHub

Table of Contents

Overview

The Scheduler Module provides centralized management for scheduled tasks (cron jobs) with flag-based control to enable/disable cron jobs across different environments.

Key Features

  • Flag Control: Environment-based enable/disable functionality
  • Centralized Management: Single service for all scheduled tasks
  • Configuration Driven: Uses NestJS ConfigService for settings

Configuration

Add to your .env file:

# Enable/disable cron jobs (default: false)
ENABLE_CRON_JOBS=true

Usage

import { Injectable } from '@nestjs/common';
import { Cron, CronExpression } from '@nestjs/schedule';
import { SchedulerService } from '@src/scheduler/scheduler.service';

@Injectable()
export class MyService {
  constructor(private readonly schedulerService: SchedulerService) {}

  @Cron(CronExpression.EVERY_5_MINUTES)
  async handleCron() {
    if (!this.schedulerService.isCronJobsEnabled) {
      return;
    }

    // Your cron job logic here
    console.log('Executing scheduled task...');
  }
}

References


Previous: Load Testing

Next: Idempotency