diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-03-03 21:08:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-03 21:08:22 +0100 |
commit | ddde4e0d954fbb1338774d61f1130e4af6924496 (patch) | |
tree | ed65d0f0f7bbfb3d4c1e4da605c8f67b1b3bb610 /app/workers/activitypub | |
parent | 5a8c651e8f0252c7135042e79396f782361302d9 (diff) |
Change `ActivityPub::DeliveryWorker` retries to be spread out more (#21956)
Diffstat (limited to 'app/workers/activitypub')
-rw-r--r-- | app/workers/activitypub/delivery_worker.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb index d9153132b..7c1c14766 100644 --- a/app/workers/activitypub/delivery_worker.rb +++ b/app/workers/activitypub/delivery_worker.rb @@ -10,6 +10,16 @@ class ActivityPub::DeliveryWorker sidekiq_options queue: 'push', retry: 16, dead: false + # Unfortunately, we cannot control Sidekiq's jitter, so add our own + sidekiq_retry_in do |count| + # This is Sidekiq's default delay + delay = (count**4) + 15 + # Our custom jitter, that will be added to Sidekiq's built-in one. + # Sidekiq's built-in jitter is `rand(10) * (count + 1)` + jitter = rand(0.5 * (count**4)) + delay + jitter + end + HEADERS = { 'Content-Type' => 'application/activity+json' }.freeze def perform(json, source_account_id, inbox_url, options = {}) |