2.3.0 • Published 3 years ago

rubik-tasks v2.3.0

Weekly downloads
5
License
MIT
Repository
github
Last release
3 years ago

Task executor for Rubik

Runs tasks delayed in time in Rubik's app.

Install

Via Yarn:

yarn add rubik-tasks

or NPM:

npm install rubik-tasks

Use

  1. Connect it to an app. Config and Log kubiks are required:
const path = require('path');
const { App, Kubiks } = require('rubik-main');
const Tasks = require('rubik-tasks');

const app = new App();
app.add([
  new Kubiks.Config(path.join(__dirname, './default/')),
  new Kubiks.Log,
  new Tasks(path.join(__dirname, './tasks/'))
]);

app.up().
then(() => {
  app.log.info('App is up');
}).
catch((err) => {
  app.log.error('App is down');
  app.log.error(err);
})
  1. Create tasks folder, and tasks within it tasks/myFirstTask.js
module.exports = {
  name: 'My first task',
  description: 'Just push message to logs time by time',
  time: '10:00',
  jobs: [function(tasks, app, task) {
    app.log.info('The texty text from', task.name);
  }]
};

Now when the application ups, the task ”My first“ task will be queued for execution at 10am.

Task options

  • id is an id of the task, it is not required, and used to manually stop the task;
  • name is a name of the task, it is not required;
  • description is a description of the task, it is not required;
  • time is a time of day, when the task should be started. Format is HH:mm;
  • period is the frequency in seconds when the task will be executed;
  • jobs is an array of functions, they are called one after another when the task is executed;
  • arguments is an array of additional variables for task's functions, they are they are placed at the beginning of the function arguments;
  • once is a flag to start task once;
  • context is a context of funtions inside jobs.

You can use placeholders for a period option:

  • 1w — a week;
  • 1d — a day;
  • 1h — a hour;
  • 1m - a minute.

Manualy add tasks

Just use add method:

tasks.add(task);

If you added a task before upping the app, then you no longer need to do anything.

If app is upped, you should start task manually:

const task = tasks.add(rawTask);
tasks.start(task);

Stop task

Just use stop method:

tasks.stop(taskId);
2.3.0

3 years ago

2.2.1

3 years ago

2.2.2

3 years ago

2.2.0

5 years ago

2.1.0

5 years ago

2.0.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago