moleculer-mixin-easy-cron
v2.0.0
Published
## Install
Downloads
62
Readme
moleculer-mixin-easy-cron
Install
npm i moleculer-mixin-easy-cron
# or
yarn add moleculer-mixin-easy-cron
Usage
// ./src/services/crontab.service.js
import CronMixin from "moleculer-mixin-easy-cron"
module.exports = {
name: "crontab",
mixins: [Cron],
cronjobs: {
// you can write your cronjob in the normal format
'0 * * * * *': {
active: true,
async handler () {
this.logger.info('Minutely cronjob started!');
// ...your code here
},
},
// or you can write your cronjob in a more intuitive way
'@minutely': {
active: true,
async handler () {
this.logger.info('Minutely cronjob started!');
// ...your code here
}
},
}
};
Configuration
// ./src/services/crontab.service.js
import CronMixin from "moleculer-mixin-easy-cron"
const {
TZ,
ENABLE_CRONS = 'false',
} = process.env;
module.exports = {
name: "crontab",
mixins: [Cron],
settings: {
cron: {
timezone: TZ,
logLevel: 'info',
defaults: {
active: [true, 'true'].includes(ENABLE_CRONS),
}
}
},
};
timezone
(String): The timezone to use for the cronjobs. Defaults to the server's TZ, otherwise it will beUTC
.logLevel
(String): The log level to use for the cronjobs. Defaults totrace
.defaults
(Object): The default configuration for all cronjobs. Defaults to{ active: true }
.
Cronjobs
Take a look at the cron package for more information on how to write cronjobs.
Friendly Cronjob Syntax
Managing scheduled tasks in applications can often be cumbersome and error-prone, especially when dealing with complex timing patterns. To simplify this process, our mixin introduces a set of intuitive and human-readable cronjob syntax options.
These aliases help developers easily schedule tasks for common intervals—from every few seconds to monthly routines—without the hassle of traditional cron syntax. Whether it's ensuring that an operation runs every working hour or scheduling a task to occur every two days, these aliases make cron scheduling more accessible and straightforward.
@minutely
: Run every minute@hourly
: Run every hour@daily
: Run every day@secondly
: Run every second@fewSeconds
: Run every 15 seconds@twicePerMinute
: Run every 30 seconds@minutely
: Run every minute@fewMinutes
: Run every 10 minutes@twicePerHour
: Run every 30 minutes@hourly
: Run every hour@fewHours
: Run every 3 hours@twicePerDay
: Run every 12 hours@daily
: Run every day@fewDays
: Run every 2 days@weekly
: Run every week@monthly
: Run every month@workingMinutes
: run every working minute@workingHours
: run every working hour@nonWorkingMinutes
: run every non-working minute@nonWorkingHours
: run every non-working hour