0.0.5 • Published 10 years ago

rekrow v0.0.5

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

rekrow

Robust distributed worker queue using RabbitMQ to end all the headache

TODO

Install

npm i -S rekrow

Usage

Dispatcher

const Rekrow = require('rekrow').default;

const rekrow = new Rekrow({
  url: 'amqp://localhost',
  jobName: 'example'
});

rekrow.connect()
  .then(() => {
    rekrow.enqueue({data: 1});
  });

Worker

const Rekrow = require('rekrow').default;

const rekrow = new Rekrow({
  url: 'amqp://localhost',
  jobName: 'example',
  handle(data) {
    console.log(data);
  }
});

rekrow.connect();

API

new Rekrow(opts)

Create a new Rekrow instance

  • opts.url:
  • opts.jobName:
  • opts.handle: (data: Object) => Promise<any>: (optional) specify this handle when you want to handle incoming jobs.
  • opts.maxParallelJobCount: number: (optional) how many job to process at the same time. Default to no limit.
  • opts.maxRetryCount: number: (optional) how many time a fail job should be retried, e.g. 4 means the job will be processed in a total of 5 times (retried 4 times), before it is dicarded. Default to 0.
  • opts.retryWaitTime: number: (optional) how many milliseconds a job should wait before re-queued for retry. Default to 5000.

rekrow.connect(): Promise<void>

connect much be called before doing anything.

rekrow.enqueue(data: Object): boolean

rekrow.close(): Promise<void>

Gracefully close connection to RabbitMQ. Will wait for any all running job to finish. But it will stop accepting new jobs.

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago