0.1.2 • Published 13 years ago

que v0.1.2

Weekly downloads
2
License
MIT
Repository
github
Last release
13 years ago

Que

One interface to many queue & worker backends.

Installation

npm install que

Supported backends

Usage

Connecting

var Que = require('que');

Que.connect(['gearman://127.0.0.1:4730'], function(){
	// all backends connected
});

Que.disconnect(function(){
	// all backends disconnected
});

Defining worker

var EchoReverseWorker = Que.define({
	job: 'echoReverse', // job name
	driver: 'gearman', // driver's name
	process: function(callback) { // processing function
		var result = this.params.message.split('').reverse().join(''); // this.params contains all the data you send, let's just reverse the string
		callback(false, { echo: result }); // first argument specifies error(none, in our case), second - response
	}
});

Submitting jobs

EchoReverseWorker.submit({ message: '2pac' }, function(err, response){ // second argument is optional
	response.echo == 'cap2'; // true
});

For CoffeeScript developers

You can define workers using CoffeeScript native class system:

class EchoReverseWorker extends Que.Worker
	job: 'echoReverse'
	driver: 'gearman'
	
	process: (callback) ->
		result = @params.message.split('').reverse().join('')
		callback false, echo: result

EchoReverseWorker = Que.Workers.setup EchoReverseWorker # this is required

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.

0.1.2

13 years ago

0.1.1

13 years ago

0.1.0

13 years ago