UNPKG

off-sqs-debearloper

Version:

Helper app that manages SQS and RabbitMQ transactions

49 lines (42 loc) 1.3 kB
var amqp = require('amqplib'), AWS = require('aws-sdk'), config = require('./config'), when = require('when'); module.exports = sendMessages = function (sendingData, url){ if(config.env.production || config.env.qa){ return sendWithSqs(sendingData, url); }; return sendWithRabbitMQ(sendingData, url); }; var sendWithRabbitMQ = function (sendingData, url){ amqp.connect('amqp://localhost').then(function(conn){ return when(conn.createChannel().then(function(channel){ var queue = url; var ok = channel.assertQueue(queue, {durable: false}); return ok.then(function(_qok){ var dataToSend = JSON.stringify(sendingData); channel.sendToQueue(queue, new Buffer(dataToSend)); return channel.close(); }); })).ensure(function() { conn.close(); }); }).then(null, console.warn); }; var sendWithSqs = function (sendingData, url){ if(typeof sendingData != 'string'){ sendingData = JSON.stringify(sendingData); }; var params = { MessageBody: sendingData, QueueUrl: url }; AWS.config.update(config.awsConfigFile); var sqs = new AWS.SQS(); sqs.sendMessage(params, function(err, data){ if(err){ console.log("" + err); } else { console.log("Success send"); }; }); };