Об этом проекте
nestx-amqp предоставляет AMQP-подключение в качестве модуля NestJS, внутренне используя amqp-connection-manager. Он опубликован на npm и выпущен под лицензией MIT.
Возможности
- Предоставляет AmqpModule, который асинхронно создает AmqpConnectionManager.
- Предоставляет глобально инъектируемый менеджер AMQP-соединений.
- Предоставляет декораторы методов, такие как @PublishQueue и @SubscribeQueue, для простого использования.
Установка
- yarn add nestx-amqp
Использование
- Зарегистрируйте модуль асинхронно с помощью AmqpModule.forRootAsync, указав URL-адреса подключения (например, amqp://guest:guest@localhost:5672?heartbeat=60).
- Внедрите менеджер соединений, используя символ AMQP_CONNECTION. В README показан абстрактный производитель, который создает канал с json:true и обратным вызовом настройки, подтверждающим очередь, ожидает подключения и отправляет сообщения в очередь.
Декораторы
- @PublishQueue(queue: string | Queue, options?: amqplib.Options.Publish) — декоратор метода для публикации сообщения в очередь. Декорированный метод принимает содержимое и необязательные параметры публикации.
- @SubscribeQueue(nameOrQueue: string | Queue, options?: ConsumeQueueOptions) — декоратор метода для потребления сообщений с простой логикой повторной постановки в очередь. ConsumeQueueOptions объединяет prefetch, необязательную exceptionQueue и необязательные настройки повтора (maxAttempts).
- @PublishExchange(exchange: string | Exchange, options?: PublishExchangeOptions) публикует в обменник; в README указано, что он нестабилен, и для использования следует обращаться к модульным тестам.
- @UseAmqpConnection(name?: string) указывает, какое именованное соединение использовать с @PublishQueue или @SubscribeQueue; рекомендуется при разработке npm-пакетов, которым требуется конкретное именованное соединение.
Интерфейсы
- Queue: имя и необязательные параметры AssertQueue.
- Exchange: имя, тип (direct, fanout, topic, headers) и необязательные параметры AssertExchange.
- PublishExchangeOptions: routingKey и необязательные параметры Publish.
- RetryOptions: maxAttempts.
- BaseConsumeOptions: prefetch и необязательная exceptionQueue.
Примечания
- В README указано, что поддержка декораторов в настоящее время охватывает только прямую публикацию и подписку на очередь.
- Примеры требуют регистрации и включения AmqpModule.
- Более подробная информация, как указано, доступна в модульных тестах, а также упоминается CHANGELOG.md.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.