Sobes.tech
Junior — Middle

Hai esperienza con il sistema di messaggistica RabbitMQ?

sobes.tech AI

Risposta dell'AI

Sì, ho esperienza con RabbitMQ. È un broker di messaggi che consente alle applicazioni di scambiare dati in modo asincrono tramite code. In Node.js, si utilizza spesso la libreria amqplib per lavorare con RabbitMQ.

Esempio di un semplice mittente e destinatario di messaggi:

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

// Per inviare, chiamare sendMessage(), per ricevere, chiamare receiveMessage()