rmq_client
Библиотека для облегчения работы с RabbitMQ.
Абстрагирует операции настройки топологии и отправки/приёма сообщений. Предоставляет поведение для consumer’а и сервер publisher’а. Для создания сообщений используются записи #rmq_msg{}
и #rmq_msg_props{}
, последняя соответствует #'P.basic'{}
из официальной библиотеки rabbit_common. Для использования этих и других определений необходимо включить файл include/rmq_client.hrl
:
-include_lib("rmq_client/include/rmq_client.hrl").
Для использования поведения consumer’а необходимо создать callback-модуль, реализующий поведение rmq_gen_consumer
:
-behaviour(rmq_gen_consumer).
Тело сообщения должно быть в формате JSON. В качестве значений свойств correlation_id
и message_id
используется UUID. Если эти свойства не установлены пользователем, они устанавливаются автоматически. Это же верно в отношении свойства timestamp
. Его значение - результат функции erlang:system_time(microsecond)
(erlang:system_time/1)
Настройка производится через файл конфигурации, пример которого находится в файле config/sys.config
.
Сборка
$ rebar3 compile
Документация
$ rebar3 edoc
Далее в браузере открыть файл doc/index.html
.
Подключение
В rebar.config
добавить зависимость:
{deps, [
{rmq_client, {git, "https://gitflic.ru/project/dzol/rmq-client.git", {tag, "0.10.1"}}}
]}.
Запуск с примером конфигурации
$ rebar3 shell
Должен быть доступен сервер RabbitMQ по адресу 127.0.0.1:5672.
Статический анализ
$ rebar3 dialyzer