Sobes.tech
Junior — Middle

RabbitMQ xabar almashish tizimi bilan ishlash tajribangiz bormi?

sobes.tech AI

AIdan javob

Ha, RabbitMQ bilan ishlash tajribam bor. Bu, ilovalar o'rtasida asinxron ma'lumot almashish imkonini beradigan xabar brokeri. Node.js da, RabbitMQ bilan ishlash uchun amqplib kutubxonasi ko'pincha ishlatiladi.

Oddiy xabar yuboruvchi va qabul qiluvchi misol:

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);
    }
  });
}

// Xabar yuborish uchun sendMessage() ni chaqiring, qabul qilish uchun receiveMessage() ni chaqiring