EctoConnectionResetter
An OTP process that allows a user to add one line to create a cron job to call disconnect all every X minutes.
Usage
In your application.ex, add:
def start(_type, _args) do
...
children = [
...
{EctoConnectionResetter, %{cycle_mins: 1, close_interval: 1, repo: YourRepo}}
]
...
end
where:
cycle_mins: number of minutes between each cycle;close_interval: seconds to close once a disconnect_all is called;repo: your Repo;verbose: (optional) log additional text when spawning the lib's OTP process and when scheduling the next resetting. Default is false;reset_callback: (optional) function to be called every time connections are reset in the pool (e.g. useful for APM metrics).
Installation
If available in Hex, the package can be installed
by adding ecto_connection_resetter to your list of dependencies in mix.exs:
def deps do
[
{:ecto_connection_resetter, "~> 0.2"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/ecto_connection_resetter.