Skip to content

Instantly share code, notes, and snippets.

@lgriffin
Created February 12, 2016 14:55
Show Gist options
  • Save lgriffin/020679ccec0186d2723d to your computer and use it in GitHub Desktop.
Save lgriffin/020679ccec0186d2723d to your computer and use it in GitHub Desktop.
BatchEmitter
var events = require('events');
var eventEmitter = new events.EventEmitter();
var interval = 5000;
var notificationMessage = {
created: "12-02-16",
dynoName: "Dyno1",
status: "RUNNING",
messages: []
};
var notificationInterval = setInterval(function() {
publishMessage(notificationMessage);
}, interval);
var startID = 1000;
var myTimer = function(){
if(startID < 1005) {
generateEvents(startID);
startID++;
} else {
clearInterval(varName);
}
};
// Used to push our messages onto the AMQmanager
function publishMessage(notification) {
// console.log("PUBLISH: " + new Date().getTime());
if(notification.messages.length === 0)
{
console.log("We have no notifications to batch publish");
}
else {
console.log(notification);
// just a reset
notificationMessage.messages = [];
}
/*
var amqpManager = amqpHelper.getAmqp();
var messagesToSend = _.cloneDeep(notification);
notification.messages = [];
amqpManager.publishTopic('fh-internal', 'fh.dbMigrate.update', messagesToSend, null, function(err){
if(err){
logger.error('[%s] failed to publish message', messagesToSend.appID, err);
} else {
logger.info('[%s] message published', messagesToSend.appID);
}
});
*/
}
var pushMessage = function(message, appID) {
if (message !== '' && message !== '/n') {
notificationMessage.messages.push({
message: message,
appID: appID,
timestamp: new Date().getTime()
});
}
};
eventEmitter.on('eventA', function(appID, status, message) {
pushMessage(message,appID);
});
eventEmitter.on('eventB', function(appID, status, message) {
pushMessage(message,appID);
});
eventEmitter.on('eventC', function(appID, status, message) {
pushMessage(message,appID);
});
// Generate events every 8s
setInterval(myTimer, 8000);
function generateEvents(appID)
{
//console.log("EVENTS: " + new Date().getTime());
eventEmitter.emit('eventA', appID, 'STOPPED', 'App currently stopped');
eventEmitter.emit('eventB', appID, 'DEPLOYING', 'App currently being deployed');
eventEmitter.emit('eventC', appID, 'RUNNING', 'App currently deployed');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment