Packages

A real-time time series database.

Retired package: I'll never finish it

Current section

Files

Jump to
phasedb_server lib phasedb server cowboy.ex
Raw

lib/phasedb/server/cowboy.ex

defmodule PhaseDB.Server.Cowboy do
require Logger
@moduledoc """
Implements the Cowboy interface enough to get an http handler running.
"""
@default_port 63157
@default_acceptors 100
def start_link do
port = Keyword.get config, :port
acceptors = Keyword.get config, :acceptors
config = Keyword.drop config, ~w| acceptors |a
Logger.info "Starting PhaseDB Server on port #{port} (http)."
:cowboy.start_http(:http, acceptors, config, [env: [dispatch: dispatch]])
end
def dispatch do
:cowboy_router.compile([
{
:_,
[
{
:_,
PhaseDB.Server.Cowboy.HTTPHandler,
nil
}
]
}
])
end
def config do
[
{:port, Application.get_env(:phasedb_server, :listen_port, @default_port)},
{:acceptors, Application.get_env(:phasedb_server, :listen_port, @default_acceptors)}
]
end
end