Skip to main content

Advanced Example: Scheduler

This example extends the basic project with scheduled jobs. It mirrors how scheduling is used in real projects.

1. Register the scheduler module

import { SchedulerModule } from '@quik/scheduler';

export class AppModule extends BootstrapModule {
public modules = [
CoreModule,
HttpModule,
HttpExpressModule,
DatabaseModule,
EntityModule,
SchedulerModule
];
}

2. Define a scheduled task

import { Injectable } from '@quik/core';
import { Cron } from '@quik/scheduler';

@Injectable()
export class CleanupScheduler {
@Cron('0 */6 * * *')
public async cleanup() {
// cleanup logic (expire tokens, prune caches, etc.)
}
}

3. Wire the scheduler into the app

import { CleanupScheduler } from './schedulers/CleanupScheduler';

export class AppModule extends BootstrapModule {
public providers = [CleanupScheduler];
public modules = [
CoreModule,
HttpModule,
HttpExpressModule,
DatabaseModule,
EntityModule,
SchedulerModule
];
}

4. Observe

  • Logs show job execution and failures.
  • Telemetry spans appear if @quik/telemetry is enabled.