Skip to content
Snippets Groups Projects
Commit 34ccc058 authored by Eugen Rochko's avatar Eugen Rochko Committed by GitHub
Browse files

Limit total subscribe retries to 10, but space them out more (#4142)

Since there is little point in retrying so often when a service is down
or does not exist anymore. Subscriptions are renewed 1 day before they
should expire, so retrying in 30 minutes, then 2 hours, then 12 hours
is fine. If even after that, the remote server does not work, there is
little sense in retrying more often than once a day

Also, uniqueness of the job should ensure that failed retries will
not result in multiple retries for the same endpoint when the next
resubscription cycle comes
parent 7f9a353b
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,20 @@ ...@@ -3,7 +3,20 @@
class Pubsubhubbub::SubscribeWorker class Pubsubhubbub::SubscribeWorker
include Sidekiq::Worker include Sidekiq::Worker
sidekiq_options queue: 'push' sidekiq_options queue: 'push', retry: 10, unique: :until_executed
sidekiq_retry_in do |count|
case count
when 0
30.minutes.seconds
when 1
2.hours.seconds
when 2
12.hours.seconds
else
24.hours.seconds * (count - 2)
end
end
def perform(account_id) def perform(account_id)
account = Account.find(account_id) account = Account.find(account_id)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment