Junior — Middle
Vai jums ir pieredze ar RabbitMQ ziņojumu apmaiņas sistēmas izmantošanu?
sobes.tech AI
Atbilde no AI
Jā, man ir pieredze ar RabbitMQ. Tas ir ziņojumu starpnieks, kas ļauj lietotnēm asenhroni veikt datu apmaiņu caur rindām. Node.js bieži izmanto bibliotēku amqplib, lai strādātu ar RabbitMQ.
Piemērs vienkāršam sūtītājam un saņēmējam:
const amqp = require('amqplib');
async function sendMessage() {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'task_queue';
const msg = 'Hello RabbitMQ!';
await channel.assertQueue(queue, { durable: true });
channel.sendToQueue(queue, Buffer.from(msg), { persistent: true });
console.log(" [x] Sent '%s'", msg);
setTimeout(() => {
connection.close();
process.exit(0);
}, 500);
}
async function receiveMessage() {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'task_queue';
await channel.assertQueue(queue, { durable: true });
channel.prefetch(1);
console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", queue);
channel.consume(queue, (msg) => {
if (msg !== null) {
console.log(" [x] Received %s", msg.content.toString());
channel.ack(msg);
}
});
}
// Sūtīšanai izsauciet sendMessage(), saņemšanai - receiveMessage()