Simple RabbitMQ Consumer
Handles all disconnection/reconnection concerns. Assumes the incoming messages are JSON and uses the Jason library to parse incomming messages.
Usage
The module is a GenServer used as follows:
opts = %{
connection: [
host: "127.0.0.1",
port: 5672,
username: "user",
password: "password"
],
topic: "test-topic",
handle_payload: fn msg ->
Reciever.send(msg)
end
}
SimpleRabbitMQConsumer.start_link(opts)
You might want to add this GenServer to your supervision tree as follows:
defmodule YourApp.Application do
use Application
def start(_type, _args) do
rabbitmq_opts = %{
connection: [
host: "127.0.0.1",
port: 5672,
username: "user",
password: "password"
],
topic: "test-topic",
handle_payload: fn msg ->
YourApp.send(msg)
end
}
children = [{SimpleRabbitMQConsumer, rabbitmq_opts}]
opts = [strategy: :one_for_all, name: __MODULE__]
Supervisor.start_link(children, opts)
end
end
Installation
The package can be installed by adding simple_rabbitmq_consumer
to your list of dependencies in mix.exs
:
def deps do
[
{:simple_rabbitmq_consumer, "~> 0.1.0"}
]
end