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()
%{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}
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,
@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]