BuildexJobs
Installation
If available in Hex, the package can be installed
by adding buildex_jobs
to your list of dependencies in mix.exs
:
def deps do
[
{:buildex_jobs, "~> 0.1.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/buildex_jobs.
General Overview
- ExRabbitPool creates a pool of connections to RabbitMQ
- each connection worker traps exits and links the connection process to it
- each connection worker creates a pool of channels and links them to it
- we spawn in the ConsumerSupervisor a given number of GenServers that are going to be our RabbitMQ consumers
- each consumer is going to get a channel out of the channel pool and is going to subscribe itself as a consumer via Basic.Consume using that channel
High Level Architecture
It is really similar to the architecture of buildex_poller
in the sense that we need a pool of connections and channels to RabbitMQ and a pool of workers, in this case, RabbitMQ Consumers; this is because we also use ExRabbitPool which is our connection layer that both apps uses.