UNPKG

amqplib

Version:

An AMQP 0-9-1 (e.g., RabbitMQ) library and client.

46 lines (36 loc) 1.05 kB
#!/usr/bin/env node var amqp = require('amqplib/callback_api'); function fib(n) { var a = 0, b = 1; for (var i=0; i < n; i++) { var c = a + b; a = b; b = c; } return a; } function bail(err, conn) { console.error(err); if (conn) conn.close(function() { process.exit(1); }); } function on_connect(err, conn) { if (err !== null) return bail(err); process.once('SIGINT', function() { conn.close(); }); var q = 'rpc_queue'; conn.createChannel(function(err, ch) { ch.assertQueue(q, {durable: false}); ch.prefetch(1); ch.consume(q, reply, {noAck:false}, function(err) { if (err !== null) return bail(err, conn); console.log(' [x] Awaiting RPC requests'); }); function reply(msg) { var n = parseInt(msg.content.toString()); console.log(' [.] fib(%d)', n); ch.sendToQueue(msg.properties.replyTo, Buffer.from(fib(n).toString()), {correlationId: msg.properties.correlationId}); ch.ack(msg); } }); } amqp.connect(on_connect);