diff options
author | Ricardo Hermida Ruiz <ricardo.ruiz@locaweb.com.br> | 2020-04-24 11:48:32 -0300 |
---|---|---|
committer | Ricardo Hermida Ruiz <ricardo.ruiz@locaweb.com.br> | 2020-04-24 13:56:17 -0300 |
commit | 8b9a0537e8920eb2ee0bee60a9602d735f05e871 (patch) | |
tree | 026e114a8846a7ad83a05254c7d0fc99e987f327 /lib/powerdnsex.ex | |
parent | Merge pull request #14 from locaweb/fix-docs (diff) |
add a pool in front of genservers
Diffstat (limited to 'lib/powerdnsex.ex')
-rw-r--r-- | lib/powerdnsex.ex | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/powerdnsex.ex b/lib/powerdnsex.ex index 6568319..fbb5003 100644 --- a/lib/powerdnsex.ex +++ b/lib/powerdnsex.ex @@ -9,10 +9,8 @@ defmodule PowerDNSex do @spec start() :: GenServer.on_start() @doc false - def start() do - import Supervisor.Spec - - children = [worker(Server, [@name])] + def start do + children = [:poolboy.child_spec(:pool, pool_config())] options = [strategy: :one_for_one, name: :"#{@name}.Supervisor"] try do @@ -98,5 +96,18 @@ defmodule PowerDNSex do # Private # ########### - defp call(params), do: GenServer.call(@name, params) + defp pool_config do + [ + name: {:local, @name}, + worker_module: Server, + size: Application.get_env(:powerdnsex, :pool_size, 20), + max_overflow: Application.get_env(:powerdnsex, :pool_overflow, 8) + ] + end + + defp call(params) do + :poolboy.transaction(@name, fn pid -> + GenServer.call(pid, params) + end) + end end |