no try block in checkout connection

This commit is contained in:
Alexander Strizhakov 2020-03-03 17:44:04 +03:00
parent 3723d72365
commit 1ad34bfdba
No known key found for this signature in database
GPG Key ID: 022896A53AEF1381
1 changed files with 9 additions and 44 deletions

View File

@ -86,56 +86,21 @@ defp maybe_get_conn(adapter_opts, uri, connection_opts) do
end end
defp try_to_get_conn(uri, opts) do defp try_to_get_conn(uri, opts) do
try do case Connections.checkin(uri, :gun_connections) do
case Connections.checkin(uri, :gun_connections) do nil ->
nil -> Logger.debug(
Logger.debug( "Gun connections pool checkin was not successful. Trying to open conn for next request."
"Gun connections pool checkin was not successful. Trying to open conn for next request."
)
Task.start(fn -> Pleroma.Gun.Conn.open(uri, :gun_connections, opts) end)
opts
conn when is_pid(conn) ->
Logger.debug("received conn #{inspect(conn)} #{Connections.compose_uri_log(uri)}")
opts
|> Keyword.put(:conn, conn)
|> Keyword.put(:close_conn, false)
end
rescue
error ->
Logger.warn(
"Gun connections pool checkin caused error #{Connections.compose_uri_log(uri)} #{
inspect(error)
}"
)
opts
catch
# TODO: here must be no timeouts
:exit, {:timeout, {_, operation, [_, {method, _}, _]}} ->
{:message_queue_len, messages_len} =
:gun_connections
|> Process.whereis()
|> Process.info(:message_queue_len)
Logger.warn(
"Gun connections pool checkin with timeout error for #{operation} #{method} #{
Connections.compose_uri_log(uri)
}. Messages length: #{messages_len}"
) )
Task.start(fn -> Pleroma.Gun.Conn.open(uri, :gun_connections, opts) end)
opts opts
:exit, error -> conn when is_pid(conn) ->
Logger.warn( Logger.debug("received conn #{inspect(conn)} #{Connections.compose_uri_log(uri)}")
"Gun pool checkin exited with error #{Connections.compose_uri_log(uri)} #{
inspect(error)
}"
)
opts opts
|> Keyword.put(:conn, conn)
|> Keyword.put(:close_conn, false)
end end
end end