1.0.0 • Published 2 years ago

@a-mehrabi/aranode-scheduler v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Scheduler Module

Scheduler implementation for aranode flow engine.

Table of Contents

Installation

To install this module in your aranode project, you just need to add the package using following command:

$ yarn add @a-mehrabi/aranode-scheduler

After that, when you want to use it, you must include it in custom modules like the following:

path: .env

ARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-scheduler

Usage

For using Scheduler, you need three manifests:

  1. Periodic scheduler adapter manifest (periodicScheduler)

  2. Nonperiodic scheduler adapter manifest (nonperiodicScheduler)

periodic Scheduler

to schedule periodic jobs you have to create a adapter manifest.

flow example:

version: 1
kind: flow
name: flow-name

flow:
  start:
    nextNode: scheduled

  scheduled:
    transform:
      path: 'dist/input-transformer.js'
    terminal: true

Configs example:

path: adapter.yml

version: 1
kind: adapter
name: adapter-name

adapter:
  periodicScheduler:
    minute:
      - 57

path: bind.yml

version: 1
kind: bind
name: bind-name

bind:
  flow-name:
    - type: inbound
      port: inbound-port-name
      adapter: adapter-name

nonperiodic Scheduler

to schedule nonperiodic jobs in a specific date you have to create a adapter manifest.

flow example:

version: 1
kind: flow
name: flow-name

flow:
  start:
    nextNode: scheduled

  scheduled:
    transform:
      path: 'dist/input-transformer.js'
    terminal: true

Configs example:

path: adapter.yml

version: 1
kind: adapter
name: adapter-name

adapter:
  nonperiodicScheduler:
    year: 2021
    month: 12
    day: 14
    hour: 12
    mnute: 28
    second: 10

path: bind.yml

version: 1
kind: bind
name: bind-name

bind:
  flow-name:
    - type: inbound
      port: inbound-port-name
      adapter: adapter-name

API

periodicScheduler

Type: adapter manifest

Options:

  • date (number[]), optional

    (1-31).

  • dayOfWeek (number[]), optional

    (0-6) Starting with Sunday.

  • hour (number[]), optional

    (0-23).

  • minute (number[]), optional

    (0-59).

  • month (number[]), optional

    (0-11).

  • scond (number[]), optional

    (0-59).

  • year (number[]), optional

nonperiodicScheduler

Type: adapter manifest

Options:

  • year (number), required

  • month (number), required

    (0-11).

  • day (number), required

  • hour (number), required

    (0-23).

  • minute (number), required

    (0-59).

  • scond (number), required

    (0-59).