Sobre el proyecto
nestx-amqp proporciona una conexión AMQP como módulo de NestJS, utilizando amqp-connection-manager internamente. Está publicado en npm y liberado bajo la Licencia MIT.
Características
- Proporciona un AmqpModule que crea un AmqpConnectionManager de forma asíncrona.
- Proporciona un gestor de conexión AMQP inyectable globalmente.
- Proporciona decoradores de métodos como @PublishQueue y @SubscribeQueue para un uso sencillo.
Instalación
- yarn add nestx-amqp
Uso
- Registre el módulo de forma asíncrona con AmqpModule.forRootAsync, suministrando las URL de conexión (por ejemplo amqp://guest:guest@localhost:5672?heartbeat=60).
- Inyecte el gestor de conexión usando el símbolo AMQP_CONNECTION. El README muestra un productor abstracto que crea un canal con json:true y una devolución de llamada de configuración que afirma una cola, espera la conexión y envía mensajes a la cola.
Decoradores
- @PublishQueue(queue: string | Queue, options?: amqplib.Options.Publish) es un decorador de método para publicar un mensaje en una cola. El método decorado recibe contenido y opciones de publicación opcionales.
- @SubscribeQueue(nameOrQueue: string | Queue, options?: ConsumeQueueOptions) es un decorador de método para consumir mensajes, con lógica simple de reencolado. ConsumeQueueOptions combina prefetch, una exceptionQueue opcional y configuraciones de reintento opcionales (maxAttempts).
- @PublishExchange(exchange: string | Exchange, options?: PublishExchangeOptions) publica en un intercambio; el README lo marca como no estable y señala las pruebas unitarias para su uso.
- @UseAmqpConnection(name?: string) especifica qué conexión nombrada usar con @PublishQueue o @SubscribeQueue, recomendado al desarrollar paquetes npm que necesiten una conexión nombrada específica.
Interfaces
- Queue: nombre y opciones AssertQueue opcionales.
- Exchange: nombre, tipo (direct, fanout, topic, headers) y opciones AssertExchange opcionales.
- PublishExchangeOptions: routingKey y opciones Publish opcionales.
- RetryOptions: maxAttempts.
- BaseConsumeOptions: prefetch y exceptionQueue opcional.
Notas
- El README indica que el soporte de decoradores actualmente cubre solo publicación y suscripción directa a colas.
- Los ejemplos requieren registrar y habilitar AmqpModule.
- Se indica que hay más detalles disponibles en los casos de prueba unitarios, y se referencia un CHANGELOG.md.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.