https://github.com/alaricode/nestjs-cron
NestJS cron package allows you easily setup cron for your controllers or services
https://github.com/alaricode/nestjs-cron
Last synced: 3 months ago
JSON representation
NestJS cron package allows you easily setup cron for your controllers or services
- Host: GitHub
- URL: https://github.com/alaricode/nestjs-cron
- Owner: AlariCode
- License: mit
- Created: 2019-10-29T08:56:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-07T03:38:25.000Z (about 2 years ago)
- Last Synced: 2025-03-24T04:04:58.589Z (3 months ago)
- Language: TypeScript
- Homepage: https://alariblog.ru/
- Size: 291 KB
- Stars: 15
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# NestJS cron Module

**More NestJS libs on [alariblog.ru](https://alariblog.ru)**
[](https://www.npmjs.com/package/nestjs-cron)
[](https://www.npmjs.com/package/nestjs-cron)
[](https://github.com/AlariCode/nestjs-cron/issues)
[](https://github.com/AlariCode/nestjs-cron/pulls)NestJS cron package allows you easily setup cron for your controllers or services.
```bash
npm i nestjs-cron
```To 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.```javascript
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:```javascript
@Cron('* * * * * *', {
launchOnInit: true,
sync: true,
})
```- launchOnInit - Launch job one time right after start
- 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`.
```javascript
export class MyIntercepter implements CronIntercepterClass {
async intercept() {
return false;
}
}
```Usage example:
```javascript
@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.