Sobes.tech
Junior — Middle

Avez-vous de l'expérience avec le système de messagerie RabbitMQ?

sobes.tech IA

Réponse de l'IA

Oui, j'ai de l'expérience avec RabbitMQ. C'est un courtier de messages qui permet aux applications d'échanger des données de manière asynchrone via des files d'attente. En Node.js, la bibliothèque amqplib est souvent utilisée pour travailler avec RabbitMQ.

Exemple d'un simple émetteur et récepteur de messages:

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

// Pour envoyer, appelez sendMessage(), pour recevoir, appelez receiveMessage()