about summary refs log tree commit diff
path: root/app/workers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-07-28 17:21:14 +0200
committerGitHub <noreply@github.com>2017-07-28 17:21:14 +0200
commit6e186b9c77e7f23da6b46b901aace1c0b3b163ad (patch)
tree3a8ef12f20093ea48e19b7145471dcc80596f0d0 /app/workers
parentff9d344d4c25b43e320581f538b1edd196a0013b (diff)
When PuSH subscribe attempts are exhausted, unsubscribe (#4422)
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/pubsubhubbub/subscribe_worker.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/app/workers/pubsubhubbub/subscribe_worker.rb b/app/workers/pubsubhubbub/subscribe_worker.rb
index 9178079d4..7560c2671 100644
--- a/app/workers/pubsubhubbub/subscribe_worker.rb
+++ b/app/workers/pubsubhubbub/subscribe_worker.rb
@@ -3,7 +3,7 @@
 class Pubsubhubbub::SubscribeWorker
   include Sidekiq::Worker
 
-  sidekiq_options queue: 'push', retry: 10, unique: :until_executed
+  sidekiq_options queue: 'push', retry: 10, unique: :until_executed, dead: false
 
   sidekiq_retry_in do |count|
     case count
@@ -18,6 +18,12 @@ class Pubsubhubbub::SubscribeWorker
     end
   end
 
+  sidekiq_retries_exhausted do |msg, _e|
+    account = Account.find(msg['args'].first)
+    logger.error "PuSH subscription attempts for #{account.acct} exhausted. Unsubscribing"
+    ::UnsubscribeService.new.call(account)
+  end
+
   def perform(account_id)
     account = Account.find(account_id)
     logger.debug "PuSH re-subscribing to #{account.acct}"