amqplib
Version:
An AMQP 0-9-1 (e.g., RabbitMQ) library and client.
45 lines (38 loc) • 1.1 kB
JavaScript
const amqp = require('amqplib/callback_api');
const queue = 'task_queue';
amqp.connect((err, connection) => {
if (err) return bail(err);
connection.createChannel((err, channel) => {
if (err) return bail(err, connection);
process.once('SIGINT', () => {
channel.close(() => {
connection.close();
});
});
channel.assertQueue(queue, { durable: true }, (err, { queue }) => {
if (err) return bail(err, connection);
channel.consume(
queue,
(message) => {
const text = message.content.toString();
console.log(" [x] Received '%s'", text);
const seconds = text.split('.').length - 1;
setTimeout(() => {
console.log(' [x] Done');
channel.ack(message);
}, seconds * 1000);
},
{ noAck: false },
);
console.log(' [*] Waiting for messages. To exit press CTRL+C');
});
});
});
function bail(err, connection) {
console.error(err);
if (connection)
connection.close(() => {
process.exit(1);
});
}