Sobre o projeto
nestx-amqp fornece uma conexão AMQP como um módulo NestJS, usando amqp-connection-manager internamente. Está publicado no npm e lançado sob a Licença MIT.
Recursos
- Fornece um AmqpModule que cria um AmqpConnectionManager assincronamente.
- Fornece um gerenciador de conexão AMQP globalmente injetável.
- Fornece decoradores de método como @PublishQueue e @SubscribeQueue para uso simples.
Instalação
- yarn add nestx-amqp
Uso
- Registre o módulo assincronamente com AmqpModule.forRootAsync, fornecendo URLs de conexão (por exemplo, amqp://guest:guest@localhost:5672?heartbeat=60).
- Injete o gerenciador de conexão usando o símbolo AMQP_CONNECTION. O README mostra um produtor abstrato que cria um canal com json:true e um callback de configuração que declara uma fila, aguarda a conexão e envia mensagens para a fila.
Decoradores
- @PublishQueue(queue: string | Queue, options?: amqplib.Options.Publish) é um decorador de método para publicar uma mensagem em uma fila. O método decorado recebe conteúdo e opções de publicação opcionais.
- @SubscribeQueue(nameOrQueue: string | Queue, options?: ConsumeQueueOptions) é um decorador de método para consumir mensagens, com lógica simples de reenfileiramento. ConsumeQueueOptions combina prefetch, uma exceptionQueue opcional e configurações de repetição opcionais (maxAttempts).
- @PublishExchange(exchange: string | Exchange, options?: PublishExchangeOptions) publica em uma exchange; o README o marca como não estável e aponta para testes de unidade para uso.
- @UseAmqpConnection(name?: string) especifica qual conexão nomeada usar com @PublishQueue ou @SubscribeQueue, recomendado ao desenvolver pacotes npm que precisam de uma conexão nomeada específica.
Interfaces
- Queue: nome e opções AssertQueue opcionais.
- Exchange: nome, tipo (direct, fanout, topic, headers) e opções AssertExchange opcionais.
- PublishExchangeOptions: routingKey e opções Publish opcionais.
- RetryOptions: maxAttempts.
- BaseConsumeOptions: prefetch e exceptionQueue opcional.
Notas
- O README afirma que o suporte a decoradores atualmente cobre apenas publicação e assinatura direta de filas.
- Exemplos exigem registrar e habilitar o AmqpModule.
- Mais detalhes estão disponíveis nos casos de teste de unidade, e um CHANGELOG.md é referenciado.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.