Skip to content
Distributed task runner tools. Designed for tasks that are idempotent.
JavaScript
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
logs
models Removed functions that are not really needed Jun 10, 2015
tasks
test
.gitignore
LICENSE
README.md
app.js
config.example.json
logger.example.js
package.json Increased the async version number so we can use the during function. Jul 31, 2015

README.md

taskmaster

Distributed task runner tools. Designed to run tasks that affect external resources and master will only receive an acknowledgement of the task completion and will not in form the feeder when the tasks are complete.

Using socket.io and is event driven.

Uses a MongoDB to backup and maintain task list when master fails.

Expects tasks to be idempotent. Master will assume that a task failed if it times out and will re-run it even though the task may timeout due to the network between the master and worker failing and the worker actually still finishes.

Example of Feeder

var feederOptions = {
    connectionString: 'tcp://localhost:3000'
};

var feeder = require('feeder')(feederOptions);

var batch = [
    {
        task: 'doTask',
        params: {paramA: 1, paramB: 2}
    },
    {
        task: 'doOtherTask',
        timeout: 20000,
        priority: 100,
        params: {paramA: 1, paramB: 2}
    }
];

feeder.add(batch);

Example of Task

module.exports = function (params) {
    setTimeout((function () {
        this.done('Done with import task!');
    }).bind(this), 10000);
};

Create a copy of config.copy.json and rename it config.json. Edit fields to match your need.

This was included in a presentation at Boise Code Camp. Here is a link to the slides.

You can’t perform that action at this time.