Current section

Files

Jump to
libring lib app.ex
Raw

lib/app.ex

defmodule HashRing.App do
@moduledoc false
use Application
def start(_type, _args) do
import Supervisor.Spec
# Start the ring supervisor
children = [
worker(HashRing.Worker, [], restart: :transient)
]
{:ok, pid} = Supervisor.start_link(children, strategy: :simple_one_for_one, name: HashRing.Supervisor)
# Add any preconfigured rings
Enum.each(Application.get_env(:libring, :rings, []), fn
{name, config} ->
:ok = HashRing.Managed.new(name, config)
name when is_atom(name) ->
:ok = HashRing.Managed.new(name)
end)
# Application started
{:ok, pid}
end
end