2.0.0 • Published 26 days ago

moleculer-mixin-easy-cron v2.0.0

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
26 days ago

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 be UTC.
  • logLevel (String): The log level to use for the cronjobs. Defaults to trace.
  • 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
2.0.0

26 days ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago