README
JobQueue
Storage agnostic job queue
Changelog
2.1.2
:
- fix typo when setting timeout
2.1.1
:
- dont throw on connection problems, just reconnect
- debug log
2.1.0
:
- support stop listening on job complete
- fix tests
2.0.1
:
- fix tests
seed-sqs
paths
2.0.0
:
- custom job types (uses single queue; breaking API changes)
- timeout stale jobs (2min default)
- jobs emit
error
andtimeout
events to queue now (will trigger silent expiration) - setup npm to use
NPM_AUTH
- update docs
Prerequisites (for tests)
$ export AMAZON_ACCESS_KEY_ID=...
$ export AMAZON_ACCESS_KEY_SECRET=...
$ export SQS_QUEUE=...
Installation
$ npm install seed-job-queue --save
$ npm install seed-sqs --save # to use with sqs
Usage
// index.js
var Queue = require('seed-sqs');
var JobQueue = require('seed-job-queue');
var queue = new Queue({
name: 'staging',
key: process.env.AMAZON_ACCESS_KEY_ID,
secret: process.env.AMAZON_ACCESS_KEY_SECRET
});
var jobs = new JobQueue(queue, {
timeout: 2 * 60 * 1000
});
jobs.process(function(job) {
jobt.type // get job type
job.data // get underlying job data
job.done(); // to complete a job
job.done('Error'); // to let job expire and retry
job.done(null, true); // to complete job and stop processing
});
jobs.create('send-mail', data, function(error) {
// job created
});
jobs.create('send-quick-mail', data, { timeout: 2000 }, function(error) {
// job created,
// if it will take more than 2sec to sent that email
// job will timeout and return back to the queue
});
Development
$ git clone git@github.com:seedalpha/job-queue.git
$ cd job-queue
$ npm install
$ npm test
Author
Vladimir Popov vlad@seedalpha.net
License
©2014 Seedalpha