1.2.0 • Published 6 years ago
nestjs-cron v1.2.0
NestJS cron Module

More NestJS libs on alariblog.ru
NestJS cron package allows you easily setup cron for your controllers or services.
npm i nestjs-cronTo use cron, decorate your class with @Scheduled() and method with @Cron().
Your class has to be a provider or a controller that is declared in any module.
import { Cron, Scheduled } from 'nestjs-cron';
@Injectable()
@Scheduled()
export class MyClass {
@Cron('* * * * * *')
async myMethod() {
//...
}
}'* * * * * *' - is a standart cron notation. In this example it will be triggered every second.
Additionaly you can use options:
@Cron('* * * * * *', {
launchOnInit: true,
sync: true,
})- launchOnInit - Launch job one time right after start.
- delay - Delay before start in ms if launchOnInit is true.
- sync - Wait for method to finish before launching next tick if your function takes more time then cron.
Cron Intercepter
To intercept cron you can use @CronIntercepter decorator. You pass class that implements CronIntercepterClass as a parameter. It has one intercept method that returns Promise<boolean>.
export class MyIntercepter implements CronIntercepterClass {
async intercept() {
return false;
}
}Usage example:
@Scheduled()
@Injectable()
export class AppService {
@CronIntercepter(MyIntercepter)
@Cron('* * * * * *')
getHello() {
console.log('test');
}
}If intercept method returns true your cron will run as planned. If false method run will be skipped.