Created
July 25, 2018 20:56
-
-
Save squaremo/76246899d5b68302eaeaf76ac917d33c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var amqp = require('../channel_api') | |
var Promise = require('bluebird') | |
process.on('error', err => { | |
console.log('#338: process error', err) | |
}) | |
process.on('uncaughtException', function (err) { | |
console.log('#338: process uncaught exception', err) | |
}) | |
process.on('unhandledRejection', (reason, p) => { | |
console.log('#338: process unhandled rejection', p, 'reason', reason) | |
}) | |
function reconnect(name) { | |
amqp.connect('amqp://localhost').then(conn => { | |
console.log(name+': Connected') | |
conn.on('error', (err) => { | |
console.log(name+': TODO Handle connection error', err) | |
setTimeout(reconnect.bind(reconnect, name), 60 * 1000); | |
}); | |
return conn.createChannel().then(ch => { | |
return new Promise(resolve => { | |
ch.assertQueue('test_q') | |
.then(qok => qok.queue) | |
.then(queue => { | |
console.log(name+': Consuming') | |
return ch.consume(queue, (msg) => { | |
console.log(name+': Received msg') | |
if (msg == null) return | |
if (msg.content.toString() == 'crash now') throw new Error('Crashing Now!') | |
if (msg.content.toString() == 'crash later') { | |
setImmediate(() => { | |
throw new Error('Crashing Later!') | |
}) | |
} | |
}, { noAck: true }).then(function(_consumeOk) { | |
console.log(name+' [*] Waiting for messages. To exit press CTRL+C'); | |
}) | |
}) | |
}) | |
}).finally(() => { | |
console.log(name+': Closing connection') | |
conn.close() | |
}) | |
}).catch(err => { | |
console.log(name+': Caught Error from connect', err) | |
}); | |
} | |
reconnect('app1'); | |
reconnect('app2'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment