Skip to content

DeepzUa/amqp-rabbitmq-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm

Amqp-rabbitmq-manager

This library help to manage rabbitmq connections

Features:

  • Automatic reconnect to Rabbitmq server by default
  • Restore consumers after reconnect to server
  • Send message with response

Restore consumers after reconnect to server
import AmqpManager from 'amqp-rabbitmq-manager';

const amqpManager = new AmqpManager();
  await amqpManager.init({
    url: RABBITMQ_URL,
    user: RABBITMQ_USER,
    password: RABBITMQ_PASSWORD,
  },
  () => console.error('RabbitMQ connect close'),
  () => console.error('RabbitMQ connect error')
 );

 const restoreConsume = true;

 amqpManager.addConsume({
    rpcQueue: RABBITMQ_Q,
    onMessage: (message: string) => console.log(message)
 }, restoreConsume);

Send message with response
import AmqpManager from 'amqp-rabbitmq-manager';
import express, { Express, Request, Response } from 'express';

const amqpManager = new AmqpManager();
  await amqpManager.init({
    url: RABBITMQ_URL,
    user: RABBITMQ_USER,
    password: RABBITMQ_PASSWORD,
  },
  () => console.error('RabbitMQ connect close'),
  () => console.error('RabbitMQ connect error')
 );

const app: Express = express();

app.get('/sendwithresponse', async (req: Request, res: Response) => {
 const RABBITMQ_Q = 'ping';
 const timeOut = 2000;
 const message = JSON.stringify({hello: 'Hello'});
 try {
  const response = await amqpManager.sendRPCMessageWithResponse(RABBITMQ_Q, message, timeOut);
  res.send(response);
 } catch(e) {
  res.status(503).send('timeout');
 }

});

app.listen(3000,()=> console.log(`[SERVER]: services are started`) );

coffee

Pavlo Chmykh

About

Management for amqplib.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published