Skip to content

Buildex service which receives and processes build instructions

License

Notifications You must be signed in to change notification settings

esl/buildex_jobs

Repository files navigation

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.

screen shot 2018-08-29 at 7 22 49 am

About

Buildex service which receives and processes build instructions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published