Packages
exq
0.7.3
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.2
Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language.
Current section
Files
Jump to
Current section
Files
lib/exq/support/mode.ex
defmodule Exq.Support.Mode do
@moduledoc """
This module defines several modes in which Exq can be used. These modes are:
* `default` - starts the default processes
* `enqueuer` - starts processes which are responsible for job enqueueing
* `api` - starts processes which are responsible for API usage
"""
@doc """
Returns child list for the main Exq supervisor
"""
import Exq.Support.Opts, only: [conform_opts: 1]
import Supervisor.Spec
def children(opts) do
{redis_opts, connection_opts, opts} = conform_opts(opts)
# make sure redis always first(start in order)
children = [worker(Redix, [redis_opts, connection_opts])]
children = children ++ children(opts[:mode], opts)
children
end
def children(:default, opts) do
children = [
worker(Exq.Middleware.Server, [opts]),
worker(Exq.Stats.Server, [opts]),
supervisor(Exq.Worker.Supervisor, [opts]),
worker(Exq.Manager.Server, [opts]),
worker(Exq.Enqueuer.Server, [opts]),
worker(Exq.Api.Server, [opts])
]
if opts[:scheduler_enable] do
children ++ [worker(Exq.Scheduler.Server, [opts])]
else
children
end
end
def children(:enqueuer, opts) do
[worker(Exq.Enqueuer.Server, [opts])]
end
def children(:api, opts) do
[worker(Exq.Api.Server, [opts])]
end
end