queue-commander

0.2.0 • Public • Published

Queue Commander

AMQP for dummies

npm install queue-commander

Usage

var QueueCommander = require('queue-commander');
var qc = new QueueCommander(settings());
 
function settings() {
    return {
        consumeJobResults: false, // default: true
        prefix: 'staging_', // prepend queue with prefix
    };
}
  1. declare queue (queue-schema.js)
qc.registerQueue('fruits', {durable: false}); // configure queue here
  1. declare channel(s) (queue-schema.js)
var apple = qc.channel({name: 'apple', input: 'fruits'}); // RPC
var orange = qc.channel({name: 'orange', input: 'fruits', output: 'results'}); // remote job
  1. on server (server.js)
apple.onServer(function(args, done, ack) {
    ack(true);
    setTimeout(function() {
      done(null, 'yummy ' + args.name);
    }, 1000);
});
  1. on client: remote call (client-rpc.js)
// register call
var sendToAppleQueue = apple.onClient();
// make a call
sendToAppleQueue({name: 'golden apple'}).then(function(response) {
    console.log(response); // yummy golden apple
});
  1. on client: remote job (client-job.js)
// register job
var sendToOrangeQueue = orange.onClient(function(err, res, next){
    console.log(res); // yummy sweet orange
    next();
});
// post a job
sendToOrangeQueue({name: 'sweet orange'}); // note that callback will not be called

Readme

Keywords

Package Sidebar

Install

npm i queue-commander

Weekly Downloads

1

Version

0.2.0

License

MIT

Last publish

Collaborators

  • anatoliy
  • nicck