Socket
Socket
Sign inDemoInstall

@john-ko/moleculer-crons

Package Overview
Dependencies
3
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @john-ko/moleculer-crons

moleculer cronjob mixin with es6 imports


Version published
Weekly downloads
1
decreased by-94.12%
Maintainers
1
Install size
4.01 MB
Created
Weekly downloads
 

Changelog

Source

0.1.1

Readme

Source

Moleculer Cron

install

$ npm install @john-ko/moleculer-crons

usage

import { ServiceSchema } from 'moleculer'
import CronMixin, { CronJobSchema } from '@john-ko/moleculer-crons'

const broker = new ServiceBroker()
const schema = {
  name: 'cron-test',
  mixins: [CronMixin]
  crons: {
    test: {
      cronTime: '* * * * *',
      onTick: async function () { // note: use function instead of () => {}
        console.log('starting cronjob...')
        const total = await this.broker.call('math.add', { a: 1, b: 2})
        console.log(total)
      },
    }
  },
}

broker.createService(schema)
broker.start()

full options

const schema = {
  name: 'cron-test',
  mixins: [CronMixin]
  crons: {
    namedCronJob: {
      // see https://github.com/kelektiv/node-cron#api

      /**
       * The time to fire off your job. This can be in the
       * form of cron syntax, a JS ```Date``` object,
       * or a luxon ```DateTime``` object.
       */
      cronTime: string | Date | DateTime;

      /**
       * The function to fire at the specified time. If an
       * ```onComplete``` callback was provided, ```onTick```
       * will receive it as an argument. ```onTick``` may call
       * ```onComplete``` when it has finished its work.
       */
      onTick: CronCommand;

      /**
       * A function that will fire when the job is stopped with
       * ```job.stop()```, and may also be called by ```onTick```
       * at the end of each run.
       */
      onComplete?: CronCommand | null | undefined;

      /**
       * Specifies whether to start the job just before exiting the constructor.
       * By default this is set to false. If left at default you will need
       * to call ```job.start()``` in order to start the job
       * (assuming ```job``` is the variable you set the cronjob to).
       * This does not immediately fire your ```onTick``` function,
       * it just gives you more control over the behavior of your jobs.
       */
      start?: boolean | undefined;

      /**
       * Specify the timezone for the execution.
       * This will modify the actual time relative to your timezone.
       * If the timezone is invalid, an error is thrown.
       * Can be any string accepted by luxon's ```DateTime.setZone()```
       * (https://moment.github.io/luxon/api-docs/index.html#datetimesetzone).
       * Probably don't use both ```timeZone``` and ```utcOffset```
       * together or weird things may happen.
       */
      timeZone?: string | undefined;

      /**
       * context is already passed in with `this.broker` so that you have
       * access to `this.broker.call` and any other broker methods
       * 
       * to see original usage see https://github.com/kelektiv/node-cron#api
       */
      context?: any;

      /**
       * This will immediately fire your ```onTick``` function
       * as soon as the requisit initialization has happened.
       * This option is set to ```false``` by default for
       * backwards compatibility.
       */
      runOnInit?: boolean | undefined;

      /**
       * This allows you to specify the offset of your timezone
       * rather than using the ```timeZone``` param. Probably
       * don't use both ```timeZone``` and ```utcOffset```
       * together or weird things may happen.
       */
      utcOffset?: string | number | undefined;

      /**
       * If you have code that keeps the event loop running
       * and want to stop the node process when that finishes
       * regardless of the state of your cronjob, you can do
       * so making use of this parameter. This is off by
       * default and cron will run as if it needs to control
       * the event loop. For more information take a look
       * at [timers#timers_timeout_unref](https://nodejs.org/api/timers.html#timers_timeout_unref)
       * from the NodeJS docs.
       */
      unrefTimeout?: boolean | undefined;

    }
  }
}

Keywords

FAQs

Last updated on 17 Sep 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc