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