Set a default timeout for Gun adapter timeout

This commit is contained in:
href 2020-07-13 10:44:36 +02:00 committed by rinpatch
parent e499275076
commit 6d583bcc3b

View File

@ -44,15 +44,17 @@ def maybe_add_proxy(opts, proxy), do: Keyword.put_new(opts, :proxy, proxy)
@spec options(URI.t(), keyword()) :: keyword() @spec options(URI.t(), keyword()) :: keyword()
def options(%URI{} = uri, opts \\ []) do def options(%URI{} = uri, opts \\ []) do
@defaults @defaults
|> pool_timeout() |> put_timeout()
|> Keyword.merge(opts) |> Keyword.merge(opts)
|> adapter_helper().options(uri) |> adapter_helper().options(uri)
end end
defp pool_timeout(opts) do # For Hackney, this is the time a connection can stay idle in the pool.
# For Gun, this is the timeout to receive a message from Gun.
defp put_timeout(opts) do
{config_key, default} = {config_key, default} =
if adapter() == Tesla.Adapter.Gun do if adapter() == Tesla.Adapter.Gun do
{:pools, Config.get([:pools, :default, :timeout])} {:pools, Config.get([:pools, :default, :timeout], 5_000)}
else else
{:hackney_pools, 10_000} {:hackney_pools, 10_000}
end end