À propos du projet
nestx-amqp fournit une connexion AMQP en tant que module NestJS, utilisant amqp-connection-manager en interne. Il est publié sur npm et distribué sous la licence MIT.
Fonctionnalités
- Fournit un AmqpModule qui crée un AmqpConnectionManager de manière asynchrone.
- Fournit un gestionnaire de connexion AMQP injectable globalement.
- Fournit des décorateurs de méthode tels que @PublishQueue et @SubscribeQueue pour une utilisation simple.
Installation
- yarn add nestx-amqp
Utilisation
- Enregistrez le module de manière asynchrone avec AmqpModule.forRootAsync, en fournissant les URL de connexion (par exemple amqp://guest:guest@localhost:5672?heartbeat=60).
- Injectez le gestionnaire de connexion à l'aide du symbole AMQP_CONNECTION. Le README montre un producteur abstrait qui crée un canal avec json:true et un rappel de configuration qui déclare une file d'attente, attend la connexion et envoie des messages à la file d'attente.
Décorateurs
- @PublishQueue(queue: string | Queue, options?: amqplib.Options.Publish) est un décorateur de méthode pour publier un message dans une file d'attente. La méthode décorée reçoit le contenu et des options de publication facultatives.
- @SubscribeQueue(nameOrQueue: string | Queue, options?: ConsumeQueueOptions) est un décorateur de méthode pour consommer des messages, avec une logique simple de remise en file. ConsumeQueueOptions combine prefetch, une exceptionQueue facultative et des paramètres de nouvelle tentative facultatifs (maxAttempts).
- @PublishExchange(exchange: string | Exchange, options?: PublishExchangeOptions) publie vers un échange ; le README le marque comme non stable et renvoie aux tests unitaires pour l'utilisation.
- @UseAmqpConnection(name?: string) spécifie quelle connexion nommée utiliser avec @PublishQueue ou @SubscribeQueue, recommandé lors du développement de packages npm nécessitant une connexion nommée spécifique.
Interfaces
- Queue : nom et options AssertQueue facultatives.
- Exchange : nom, type (direct, fanout, topic, headers) et options AssertExchange facultatives.
- PublishExchangeOptions : routingKey et options Publish facultatives.
- RetryOptions : maxAttempts.
- BaseConsumeOptions : prefetch et exceptionQueue facultative.
Remarques
- Le README indique que la prise en charge des décorateurs couvre actuellement uniquement la publication et l'abonnement directs aux files d'attente.
- Les exemples nécessitent l'enregistrement et l'activation d'AmqpModule.
- Des détails supplémentaires sont disponibles dans les cas de test unitaires, et un fichier CHANGELOG.md est référencé.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.