@dekproject/rabbitmq

2.0.2 • Public • Published

@dekproject/rabbitmq

RabbitMQ interface plugin for DEK

What does this plugin do?

  • Control configuration for connection to RabbitMQ in production development mode in a simplified way with dotenv
  • Performs connection implementation along the lines ES6 being pre requirement to start the project

Instalation

To install the bootstrap we recommend using the CLI

$ yarn add @dekproject/rabbitmq --save

In the .env file add the following settings

RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672

Usage

Using in the standard DEK skeleton

import { $, rabbitmq } from "@dekproject/scope";

$.wait("rabbitmq").then(() => {
    let connection = rabbitmq();

    connection.on("connect", () => {
        console.log("Connected!");
    });
    
    connection.on("disconnect", () => {
        console.log("Disconnected.");
    });

    let channelWrapper = connection.createChannel({
        json: true,
        setup: (channel) => {
            return Promise.all([
                channel.assertQueue("hello", { exclusive: true, autoDelete: true }),
                channel.prefetch(1),
                channel.consume("hello", (msg) => {
                    console.log(" [x] Received '%s'", msg.content.toString());
                    channel.ack(msg);
                }, { noAck: false })
            ]);
        }
    });

    channelWrapper.waitForConnect().then(() => {
        console.log("Listening for messages");
        channelWrapper.sendToQueue("hello", { hello: "world" });
    });     
}).catch((err) => {
    console.log(err);
    process.exit(-1);
});

Readme

Keywords

none

Package Sidebar

Install

npm i @dekproject/rabbitmq

Weekly Downloads

2

Version

2.0.2

License

MIT

Unpacked Size

19.4 kB

Total Files

12

Last publish

Collaborators

  • gislainyvelasco
  • andrehrf