Build faster.
My grab-bag of utilities that I tend to want, but don't want to reimplement for every application I build.
If available in Hex, the package can be installed
by adding fast
to your list of dependencies in mix.exs
:
def deps do
[
{:fast, "~> 0.3.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/fast.
Update mix.exs
with a version number.
Run mix hex.publish
.
GenServer that tracks whether an application is ready for traffic (for use with Fast.Plug.Ready
).
- Add
Fast.Application.Ready
as the last child inapplication.ex
:
# lib/myapp/application.ex
defmodule MyApp.Application do
use Application
def start(_type, _args) do
children = [
...
- ]
+ ] ++ [{Fast.Application.Ready, otp_app: :my_app}]
opts = [strategy: :one_for_one, name: MyApp.Supervisor]
Supervisor.start_link(children, opts)
end
end
- Add
Fast.Plug.Ready
tolib/myapp_web/endpoint.ex
:
plug Fast.Plug.Ready, otp_app: :myapp, path: "/readyz"