Packages
ace
0.9.1
0.19.0
0.18.10
0.18.9
0.18.8
0.18.7
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.8
0.16.7
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.11
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
retired
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
retired
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
HTTP web server and client, supports http1 and http2
Current section
Files
Jump to
Current section
Files
lib/ace/server/supervisor.ex
defmodule Ace.Server.Supervisor do
@moduledoc """
Supervise a collection of servers, that are listening or handling connections.
Individual server processes can be stared from a supervisor,
however recommended is to provide a constant sized number of accepting servers use a governor pool.
"""
use Supervisor
@doc """
Start a new server supervisor.
Each worker will be started with the same app defined behaviour.
"""
@spec start_link(Ace.Server.app) :: {:ok, pid}
def start_link(app) do
Supervisor.start_link(__MODULE__, app)
end
## MODULE CALLBACKS
def init(app) do
children = [
worker(Ace.Server, [app], restart: :temporary)
]
# Connections are temporary, if a server crashes we rely upon the client to make a new connection.
supervise(children, strategy: :simple_one_for_one)
end
end