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/telemetryis enabled.