Get port and servers from env
This commit is contained in:
parent
6da72d5801
commit
c2f0fd6fcd
@ -5,6 +5,11 @@ defmodule MessageServer.Application do
|
||||
@impl true
|
||||
def start(_type, _args) do
|
||||
server_id = get_server_id()
|
||||
port = get_port()
|
||||
servers = parse_servers()
|
||||
|
||||
Logger.info("Starting MessageServer #{server_id} on port #{port}")
|
||||
Logger.info("Known servers: #{inspect(servers)}")
|
||||
|
||||
children = [
|
||||
{MessageServer.Storage, server_id}
|
||||
@ -19,4 +24,20 @@ defmodule MessageServer.Application do
|
||||
System.get_env("SERVER_ID") ||
|
||||
raise "SERVER_ID is required"
|
||||
end
|
||||
|
||||
@spec get_port() :: integer()
|
||||
def get_port() do
|
||||
System.get_env("PORT", "4000") |> String.to_integer()
|
||||
end
|
||||
|
||||
@spec parse_servers() :: map()
|
||||
defp parse_servers() do
|
||||
System.get_env("SERVERS", "")
|
||||
|> String.split(",")
|
||||
|> Enum.reject(&(&1 == ""))
|
||||
|> Enum.into(%{}, fn server_string ->
|
||||
[id, host, port] = String.split(server_string, ":")
|
||||
{id, %{host: host, port: String.to_integer(port)}}
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user