rubik-tasks
v2.3.0
Published
Task executor for Rubik
Downloads
7
Readme
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
- 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);
})
- Create
tasks
folder, and tasks within ittasks/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);