1.2.14 • Published 3 years ago

prodly-amqp v1.2.14

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

prodly-amqp

Экспортирует класс prodlyAMQP - отправка и прием сообщений через RabbitMQ, с поддержкой дополнительных функций:

  • автоматическое восстановление соединения после потери связи с сервером RabbitMQ
  • RPC вызовы
  • Повторная обработка сообщений в случае ошибки
  • Автоматическая сериализация данных в сообщениях
  • Широковещательная рассылка сообщений

Установка

npm install --save prodly-amqp

API

Конструктор.

serviceName - имя приложения/сервиса, например public

const AMQP = await new ProdlyAMQP(serviceName, {
  url: process.env.AMQP_SERVER, // Адрес для подключения к RabbitMQ (например: amqp://localhost)
  rpc: 'prodly_rpc',            // Название Exchange для приёма RPC запросов
  events: 'prodly_events',      // Название Exchange для приёма сообщений
  xdl: 'prodly_events.xdl',     // X-Dead-Letters Exchange
  ttl: 3,                       // Количество попыток обработки сообщений (необязательно)
  delay: 30000,                 // Задержка между попытками обработки сообщений (необязательно)
  timeout: 3000,                // Таймаут по умолчанию для RPC вызовов
  prefetch: 1                   // Channel.prefetch  (необязательно)
})

Регистрация обработчиков сообщений.

 AMQP.events({
   'onUserCreated'( fields, properties, data ) {
     // properties.appId - содержит имя сервиса-отправителя
   ...
   }
 })

Отправка сообщения

  /**
 * @param {String} event - Событие
 * @param {String | Number | Object | Buffer} data
 * @param {Object} [options] - Дополнительные параметры
 * @param {Boolean} options.important - важное сообщение
 * @param {Number} options.ttl - Количество попыток доставки важных сообщений (только если important
 * @param {Number} options.delay - Задержка между попытками доставки важных сообщений
 * @return {Promise<void>}
 */
await AMQP.emit(event, data, options = {})

Если сообщение отмечено как important:true, и в результае выполнения обработчика будет выброшено исключение, то сообщение вернется в очередь на повторную обработку через options.delay миллисекунд. Количество попыток обработки определяется параметром options.ttl

1.2.14

3 years ago

1.2.12

3 years ago

1.2.13

3 years ago

1.2.8

3 years ago

1.2.7

3 years ago

1.2.6

3 years ago

1.2.5

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.9

3 years ago

1.2.10

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago