mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-11-13 12:31:13 +00:00
Gun: Publisher job behavior improvement
Gun's connection pool also returns an error if duplicate workers are launched simultaneously. Snooze on this error as well, and lower the snooze to 3 seconds with the optimism that the connection will still be open by then and the delivery can be completed quickly. The original setting of 30 seconds is pretty high and means there's an unnatural lag between deliveries of activities destined to the same server that were created at nearly the same time. This configuration should be more efficient.
This commit is contained in:
parent
f2dc706f6f
commit
1f986ec713
2 changed files with 8 additions and 1 deletions
1
changelog.d/oban_gun_snooze.change
Normal file
1
changelog.d/oban_gun_snooze.change
Normal file
|
@ -0,0 +1 @@
|
|||
Publisher behavior improvement when snoozing Oban jobs due to Gun connection pool contention.
|
|
@ -143,9 +143,13 @@ defmodule Pleroma.Web.ActivityPub.Publisher do
|
|||
_ -> {:error, e}
|
||||
end
|
||||
|
||||
{:error, {:already_started, _}} ->
|
||||
Logger.debug("Publisher snoozing worker job due worker :already_started race condition")
|
||||
connection_pool_snooze()
|
||||
|
||||
{:error, :pool_full} ->
|
||||
Logger.debug("Publisher snoozing worker job due to full connection pool")
|
||||
{:snooze, 30}
|
||||
connection_pool_snooze()
|
||||
|
||||
e ->
|
||||
unless params[:unreachable_since], do: Instances.set_unreachable(inbox)
|
||||
|
@ -155,6 +159,8 @@ defmodule Pleroma.Web.ActivityPub.Publisher do
|
|||
end
|
||||
end
|
||||
|
||||
defp connection_pool_snooze, do: {:snooze, 3}
|
||||
|
||||
defp signature_host(%URI{port: port, scheme: scheme, host: host}) do
|
||||
if port == URI.default_port(scheme) do
|
||||
host
|
||||
|
|
Loading…
Reference in a new issue