Merge pull request 'federation/out: tweak publish retry backoff' (#884) from Oneric/akkoma:publish_backoff into develop
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/884
This commit is contained in:
commit
8cdfbf872d
2 changed files with 14 additions and 1 deletions
|
@ -9,7 +9,11 @@ defmodule Pleroma.Workers.PublisherWorker do
|
||||||
use Pleroma.Workers.WorkerHelper, queue: "federator_outgoing"
|
use Pleroma.Workers.WorkerHelper, queue: "federator_outgoing"
|
||||||
|
|
||||||
def backoff(%Job{attempt: attempt}) when is_integer(attempt) do
|
def backoff(%Job{attempt: attempt}) when is_integer(attempt) do
|
||||||
Pleroma.Workers.WorkerHelper.sidekiq_backoff(attempt, 5)
|
if attempt > 3 do
|
||||||
|
Pleroma.Workers.WorkerHelper.exponential_backoff(attempt, 9.5)
|
||||||
|
else
|
||||||
|
Pleroma.Workers.WorkerHelper.sidekiq_backoff(attempt, 6)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@impl Oban.Worker
|
@impl Oban.Worker
|
||||||
|
|
|
@ -22,6 +22,15 @@ def sidekiq_backoff(attempt, pow \\ 4, base_backoff \\ 15) do
|
||||||
trunc(backoff)
|
trunc(backoff)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def exponential_backoff(attempt, base, base_backoff \\ 15) do
|
||||||
|
backoff =
|
||||||
|
:math.pow(base, attempt) +
|
||||||
|
base_backoff +
|
||||||
|
:rand.uniform(2 * base_backoff) * attempt
|
||||||
|
|
||||||
|
trunc(backoff)
|
||||||
|
end
|
||||||
|
|
||||||
defmacro __using__(opts) do
|
defmacro __using__(opts) do
|
||||||
caller_module = __CALLER__.module
|
caller_module = __CALLER__.module
|
||||||
queue = Keyword.fetch!(opts, :queue)
|
queue = Keyword.fetch!(opts, :queue)
|
||||||
|
|
Loading…
Reference in a new issue