Skip to content
Buildex service which receives and processes build instructions
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
lib
rel
repo_jobs
test
.coveralls.yml
.credo.exs
.dockerignore
.formatter.exs
.gitignore
.tool-versions
.travis.yml
Dockerfile
LICENSE
Makefile
README.md
mix.exs
mix.lock

README.md

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

You can’t perform that action at this time.