Skip to content

Instantly share code, notes, and snippets.

@yalamber
Last active December 19, 2015 22:28
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yalamber/374add88e887e688d818 to your computer and use it in GitHub Desktop.
Save yalamber/374add88e887e688d818 to your computer and use it in GitHub Desktop.
/*
Author: Yalamber subba
Script: distribute_content.js
Description: Read from sqs queue and process that queue for distribution of network
*/
"use strict";
var appConf = require('./config/appConf');
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config/aws_config.json');
var delay = 20 * 1000;
var sqs = new AWS.SQS();
var exec = require('child_process').exec;
function readMessage() {
sqs.receiveMessage({
"QueueUrl": appConf.sqs_distribution_url,
"MaxNumberOfMessages": 1,
"VisibilityTimeout": 30,
"WaitTimeSeconds": 20
}, function (err, data) {
var sqs_message_body;
if (data.Messages) {
if (typeof data.Messages[0] !== 'undefined' && typeof data.Messages[0].Body !== 'undefined') {
//sqs msg body
sqs_message_body = JSON.parse(data.Messages[0].Body);
//make call to nodejs handler in codeigniter
exec('php '+ appConf.CI_FC_PATH +'/index.php nodejs_handler make_contentq_call "'+ sqs_message_body.contentq_cat_id+'" "'+sqs_message_body.cnhq_cat_id+'" "'+sqs_message_body.network_id+'"',
function (error, stdout, stderr) {
if (error) {
readMessage();
}
if(stdout == 'Success'){
//delete message from queue
sqs.deleteMessage({
"QueueUrl" : appConf.sqs_distribution_url,
"ReceiptHandle" :data.Messages[0].ReceiptHandle
}, function(err, data){
readMessage();
});
}
else{
readMessage();
}
});
}
else{
readMessage();
}
}
else{
readMessage();
}
});
}
readMessage();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment