Que
One interface to many queue & worker backends.
Installation
npm install que
Supported backends
- Gearman (via node-gearman)
Usage
Connecting
var Que = ; Que; Que;
Defining worker
var EchoReverseWorker = Que;
Submitting jobs
EchoReverseWorker;
For CoffeeScript developers
You can define workers using CoffeeScript native class system:
class EchoReverseWorker extends Que.Model job: 'echoReverse' driver: 'gearman' process: (callback) -> result = @params.message.split('').reverse().join('') callback false, echo: result EchoReverseWorker = Que.setup EchoReverseWorker # this is required, notice **Models** here, not just **Model**
Making own drivers
Your driver should implement this interface:
class SomeDriver @connect: (server, callback) -> # server is an URI, like protocol://127.0.0.1:1234 # callback should be called when you connect to a backend @disconnect: (callback) -> # callback should be called when you disconnect from a backend @register: (name, handler) -> # name is the name of the job # handler is the function which handles the job @submit: (name, params) -> # name is the name of the job # params is the data that should be sent
After that, you should register your driver under chosen name:
Que.registerDriver 'someDriver', SomeDriver
Users of your driver will be able to connect to it using URL like someDriver://localhost:port/.
Tests
Run all the needed backends and execute mocha
in Terminal.
License
MIT.