@dexare/cron
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

A Dexare module for managing crons.

npm install @dexare/cron
const { DexareClient } = require('dexare');
const CronModule = require('@dexare/cron');

const config = {
  // All props in this config are optional, defaults are shown unless told otherwise
  cron: {
    // The folder path to load upon loading the module, defaults to none
    // When registering crons in a folder, they must end with `.cron.js`
    loadFolder: './src/crons'
  }
}

const client = new DexareClient(config);
client.loadModules(CronModule);

const cron = client.modules.get('cron');
// You can choose to register crons from folders
cron.registerFromFolder('./src/crons');
// Or register a cron directly
cron.register({
  name: 'example-cron',
  time: '0 * * * *', // Hourly
  onTick: (client, job) => {
    console.log(`This cron executed at ${job.lastDate}`)
  }
});

Cron File Example

This example cron flushes throttle data within memory data managers. Options are the same as CronJob's constructor parameters, except a new parameter name must be given to identify the job, and context will not be used in the construction of a new cron job.

// ./src/crons/flushThrottles.cron.js

module.exports = {
  name: 'flush-throttles',
  time: '0 * * * *', // Hourly
  onTick: (client, job) => {
    this.client.data.flushThrottles()
  }
}

Dependencies (2)

Dev Dependencies (13)

Package Sidebar

Install

npm i @dexare/cron

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

12 kB

Total Files

9

Last publish

Collaborators

  • snazzah