rabbitmq-xdigital
v1.0.2
Published
Essa lib foi desenvolvida com intuito de facilitar a comunicação via RabbitMQ O RabbitMq funciona com dois agentes os Publishers e os Subscribers
Downloads
4
Readme
Biblioteca de comunicação dos serviços XDgital via RabbitMQ
Docs
Essa lib foi desenvolvida com intuito de facilitar a comunicação via RabbitMQ O RabbitMq funciona com dois agentes os Publishers e os Subscribers
- Publisher:
- Envia um evento para uma um "escutador" do determinado evento.
- Subscribers:
- Seria um "escutador" que escuta a fila para receber um evento.
Para publicar
- Primeiro buildar o projeto:
npm run link
- Enviar para o npm:
npm publish
Para instalar
npm i https://github.com/HOSTSERVERDOBRASIL/xdigital-rabbitmq
Como usar
- Para Criar um evento:
No arquivo
events.ts
criar uma nova classe de evento com os dados que deseja ser enviado implementando a interfaceiEvent.ts
export class ExemploEvent implements iEvent{ nome: string; queue: string; constructor(nome: string) { this.nome = nome; this.queue = 'NomeDaFila' } }
- Para Enviar um evento deve-se:
- Na classe ou metodo que irá disparar o evento deve-se:
- Instanciar um canal:
... const rabbitMq = RabbitMqConfiguration.getInstance("amqp://usuario:senha@host:porta"); rabbitMq.then(async (res: { getChannel: () => any; }) => { const channel = await res.getChannel(); const publisher = new BusPublisher(channel); const evento = new ExemploEvent('nome') publisher.publishAsync(evento); }) ...
- Exe
- Instanciar um canal:
- Na classe ou metodo que irá disparar o evento deve-se:
- Para quem irá receber o evento, no arquivo index do projeto, no metodo bootstrap deve-se:
- Configurar o subscriver da seguinte forma
- Instanciar um canal:
... const rabbitMq = RabbitMqConfiguration.getInstance("amqp://usuario:senha@host:porta"); ...
- Resolver a conexão e criar um novo subscriber:
... const rabbitMq = RabbitMqConfiguration.getInstance("amqp://usuario:senha@host:porta"); rabbitMq.then(async (res: { getChannel: () => any; }) => { const channel = await res.getChannel(); const subscription = new BusSubscriber(channel); })
- escutar o evento:
const rabbitMq = RabbitMqConfiguration.getInstance("amqp://usuario:senha@host:porta"); rabbitMq.then(async (res: { getChannel: () => any; }) => { const channel = await res.getChannel(); const subscription = new BusSubscriber(channel); subscription .subscriberEvent('NomeDaFila', (obj: any): Promise<void> => { // aqui deve-se colocar a ação que o sistema irá excutar após receber o evento return Promise.resolve() }) })
- Instanciar um canal:
- Configurar o subscriver da seguinte forma