Перейти к основному содержимому
Версия: 1.21.3

Потребитель RabbitMQ

Систему SimpleOne можно настроить как приложение-потребитель, которое с помощью соединения с брокером сообщений RabbitMQ может принимать сообщения со сторонних сервисов.

RabbitMQ будет выступать посредником для маршрутизации сообщений от внешнего приложения в определенные очереди, в которых сообщения хранятся до момента доставки потребителю.

Для подключения к определенной очереди RabbitMQ необходимо создать запись потребителя в системе. Для этого выполните следующие шаги:

  1. Перейдите во Внешние очереди → Потребители RabbitMQ.
  2. Нажмите Создать и заполните поля.
  3. Нажмите Сохранить или Сохранить и выйти, чтобы принять изменения.

Поля формы Потребитель RabbitMQ

ПолеОбязательноОписание
НазваниеДаУкажите название потребителя очереди сообщений.
АктивенНетУстановите флажок, чтобы активировать запись потребителя.
Включить отладкуНетУстановите флажок, чтобы получать расширенные журналы записей. Это поможет выявить проблемы при настройке параметров потребителя.
Имя хостаДаВведите наименование хоста RabbitMQ, к которому осуществляется подключение, в формате example.ru.
ПортДаУкажите порт подключения к серверу.
Виртуальный хостНетУкажите хост, обозначенный в настройках сервера RabbitMQ.
Название очередиДаУкажите название очереди, из которой необходимо получать сообщения.
Имя пользователяДаУкажите логин пользователя для подключения к серверу RabbitMQ.
ПарольДаВведите пароль пользователя для подключения к серверу RabbitMQ.
Время ожидания подключенияНетЗадайте время ожидания подключения к серверу RabbitMQ.
Запуск от имениДаВыберите пользователя, от лица которого будет выполнен скрипт.
СкриптДаВведите скрипт, который будет обрабатывать полученные сообщения и вызывать определенные действия в системе. В скрипте доступны переменные:
  • body типа String – сообщение, отправленное в очередь.
  • headers типа Object – набор строковых ключей со строковыми значениями, переданными в заголовках сообщений.
Пример скрипта
(function(body, headers) {
ss.info(body + JSON.stringify(headers));
})(body, headers)

Потребитель не создает очереди, он подключается только к уже существующим. После установки соединения с сервером RabbitMQ целевая очередь может быть пустой. Сообщения будут доставлены только с появлением новых сообщений в очереди.

Выгрузка и обработка сообщений не происходят единовременно. Сообщение читается из внешней очереди и попадает во внутреннюю, где ожидает своей очереди на обработку.

примечание

В случае потери соединения с сервером потребитель автоматически будет предпринимать попытки восстановить его. Интервал между попытками определяется значением поля Время ожидания подключения и по умолчанию составляет 30 секунд.