diff options
author | feld <feld@feld.me> | 2024-08-02 13:49:11 +0000 |
---|---|---|
committer | feld <feld@feld.me> | 2024-08-02 13:49:11 +0000 |
commit | b389b85d7760d9c275b2584e0e99bff4f0265222 (patch) | |
tree | 95f934e3560d3a79c0d94577858be54886458e21 | |
parent | 8f1866e3ade52a7d4bacf46b4c06bf9468eb1fef (diff) | |
parent | 1f986ec7138ce95a102a84c75a5b39dd885bf451 (diff) | |
download | pleroma-b389b85d7760d9c275b2584e0e99bff4f0265222.tar.gz pleroma-b389b85d7760d9c275b2584e0e99bff4f0265222.zip |
Merge branch 'gun/snooze' into 'develop'
Gun: Publisher job behavior improvement
See merge request pleroma/pleroma!4202
-rw-r--r-- | changelog.d/oban_gun_snooze.change | 1 | ||||
-rw-r--r-- | lib/pleroma/web/activity_pub/publisher.ex | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/changelog.d/oban_gun_snooze.change b/changelog.d/oban_gun_snooze.change new file mode 100644 index 000000000..c94525b2a --- /dev/null +++ b/changelog.d/oban_gun_snooze.change @@ -0,0 +1 @@ +Publisher behavior improvement when snoozing Oban jobs due to Gun connection pool contention. diff --git a/lib/pleroma/web/activity_pub/publisher.ex b/lib/pleroma/web/activity_pub/publisher.ex index e040753dc..e63b8ff1f 100644 --- a/lib/pleroma/web/activity_pub/publisher.ex +++ b/lib/pleroma/web/activity_pub/publisher.ex @@ -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 |