removing unnecessary with
comment in tesla client impovement
This commit is contained in:
parent
24d1ac125c
commit
d0e4d3ca3b
2 changed files with 25 additions and 23 deletions
|
@ -36,17 +36,16 @@ def checkin(url, name) when is_binary(url), do: checkin(URI.parse(url), name)
|
|||
def checkin(%URI{} = uri, name) do
|
||||
timeout = Config.get([:connections_pool, :checkin_timeout], 250)
|
||||
|
||||
GenServer.call(
|
||||
name,
|
||||
{:checkin, uri},
|
||||
timeout
|
||||
)
|
||||
GenServer.call(name, {:checkin, uri}, timeout)
|
||||
end
|
||||
|
||||
@spec alive?(atom()) :: boolean()
|
||||
def alive?(name) do
|
||||
pid = Process.whereis(name)
|
||||
if pid, do: Process.alive?(pid), else: false
|
||||
if pid = Process.whereis(name) do
|
||||
Process.alive?(pid)
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
@spec get_state(atom()) :: t()
|
||||
|
@ -131,19 +130,20 @@ def handle_call({:checkin, uri}, from, state) do
|
|||
%{conn: conn, gun_state: :up} = current_conn ->
|
||||
Logger.debug("reusing conn #{key}")
|
||||
|
||||
with time <- :os.system_time(:second),
|
||||
last_reference <- time - current_conn.last_reference,
|
||||
current_crf <- crf(last_reference, 100, current_conn.crf),
|
||||
state <-
|
||||
put_in(state.conns[key], %{
|
||||
current_conn
|
||||
| last_reference: time,
|
||||
crf: current_crf,
|
||||
conn_state: :active,
|
||||
used_by: [from | current_conn.used_by]
|
||||
}) do
|
||||
{:reply, conn, state}
|
||||
end
|
||||
time = :os.system_time(:second)
|
||||
last_reference = time - current_conn.last_reference
|
||||
current_crf = crf(last_reference, 100, current_conn.crf)
|
||||
|
||||
state =
|
||||
put_in(state.conns[key], %{
|
||||
current_conn
|
||||
| last_reference: time,
|
||||
crf: current_crf,
|
||||
conn_state: :active,
|
||||
used_by: [from | current_conn.used_by]
|
||||
})
|
||||
|
||||
{:reply, conn, state}
|
||||
|
||||
%{gun_state: :down} ->
|
||||
{:reply, nil, state}
|
||||
|
|
|
@ -18,8 +18,9 @@ defmodule Pleroma.ReverseProxy.Client.Tesla do
|
|||
def request(method, url, headers, body, opts \\ []) do
|
||||
check_adapter()
|
||||
|
||||
with opts <- Keyword.merge(opts, body_as: :chunks, mode: :passive),
|
||||
{:ok, response} <-
|
||||
opts = Keyword.merge(opts, body_as: :chunks)
|
||||
|
||||
with {:ok, response} <-
|
||||
Pleroma.HTTP.request(
|
||||
method,
|
||||
url,
|
||||
|
@ -40,7 +41,8 @@ def request(method, url, headers, body, opts \\ []) do
|
|||
@impl true
|
||||
@spec stream_body(map()) :: {:ok, binary(), map()} | {:error, atom() | String.t()} | :done
|
||||
def stream_body(%{pid: pid, opts: opts, fin: true}) do
|
||||
# if connection was sended and there were redirects, we need to close new conn - pid manually
|
||||
# if connection was reused, but in tesla were redirects,
|
||||
# tesla returns new opened connection, which must be closed manually
|
||||
if opts[:old_conn], do: Tesla.Adapter.Gun.close(pid)
|
||||
# if there were redirects we need to checkout old conn
|
||||
conn = opts[:old_conn] || opts[:conn]
|
||||
|
|
Loading…
Reference in a new issue