@@ -12,24 +12,31 @@ defmodule Broadcaster.Application do
12
12
13
13
@ impl true
14
14
def start ( _type , _args ) do
15
+ dist_config =
16
+ case Application . fetch_env! ( :broadcaster , :dist_config ) do
17
+ nil ->
18
+ [ ]
19
+
20
+ config ->
21
+ [ { Cluster.Supervisor , [ [ cluster: config ] , [ name: Broadcaster.ClusterSupervisor ] ] } ]
22
+ end
23
+
24
+ # Start dist_config before starting Forwarder,
25
+ # as Forwarder asks other nodes for their inputs.
15
26
children =
16
27
[
17
28
BroadcasterWeb.Telemetry ,
18
29
{ Phoenix.PubSub , name: Broadcaster.PubSub } ,
19
30
BroadcasterWeb.Endpoint ,
20
- BroadcasterWeb.Presence ,
21
- Broadcaster.PeerSupervisor ,
22
- Broadcaster.Forwarder ,
23
- Broadcaster.ChatHistory ,
24
- { Registry , name: Broadcaster.ChatNicknamesRegistry , keys: :unique }
31
+ BroadcasterWeb.Presence
25
32
] ++
26
- case Application . fetch_env! ( :broadcaster , : dist_config) do
27
- nil ->
28
- [ ]
29
-
30
- config ->
31
- [ { Cluster.Supervisor , [ [ cluster: config ] , [ name: Broadcaster.ClusterSupervisor ] ] } ]
32
- end
33
+ dist_config ++
34
+ [
35
+ Broadcaster.PeerSupervisor ,
36
+ Broadcaster.Forwarder ,
37
+ Broadcaster.ChatHistory ,
38
+ { Registry , name: Broadcaster.ChatNicknamesRegistry , keys: :unique }
39
+ ]
33
40
34
41
# See https://hexdocs.pm/elixir/Supervisor.html
35
42
# for other strategies and supported options
0 commit comments