Revert unique retry job (#4937)
* Revert "Enable UniqueRetryJobMiddleware even when called from sidekiq worker (#4836)" This reverts commit6859d4c028. * Revert "Do not execute the job with the same arguments as the retry job (#4814)" This reverts commitbe7ffa2d75.
This commit is contained in:
		@@ -3,7 +3,7 @@
 | 
				
			|||||||
class Pubsubhubbub::SubscribeWorker
 | 
					class Pubsubhubbub::SubscribeWorker
 | 
				
			||||||
  include Sidekiq::Worker
 | 
					  include Sidekiq::Worker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  sidekiq_options queue: 'push', retry: 10, unique: :until_executed, dead: false, unique_retry: true
 | 
					  sidekiq_options queue: 'push', retry: 10, unique: :until_executed, dead: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  sidekiq_retry_in do |count|
 | 
					  sidekiq_retry_in do |count|
 | 
				
			||||||
    case count
 | 
					    case count
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,6 @@ require_relative '../app/lib/exceptions'
 | 
				
			|||||||
require_relative '../lib/paperclip/gif_transcoder'
 | 
					require_relative '../lib/paperclip/gif_transcoder'
 | 
				
			||||||
require_relative '../lib/paperclip/video_transcoder'
 | 
					require_relative '../lib/paperclip/video_transcoder'
 | 
				
			||||||
require_relative '../lib/mastodon/version'
 | 
					require_relative '../lib/mastodon/version'
 | 
				
			||||||
require_relative '../lib/mastodon/unique_retry_job_middleware'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Dotenv::Railtie.load
 | 
					Dotenv::Railtie.load
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,14 +9,8 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Sidekiq.configure_server do |config|
 | 
					Sidekiq.configure_server do |config|
 | 
				
			||||||
  config.redis = redis_params
 | 
					  config.redis = redis_params
 | 
				
			||||||
  config.client_middleware do |chain|
 | 
					 | 
				
			||||||
    chain.add Mastodon::UniqueRetryJobMiddleware
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sidekiq.configure_client do |config|
 | 
					Sidekiq.configure_client do |config|
 | 
				
			||||||
  config.redis = redis_params
 | 
					  config.redis = redis_params
 | 
				
			||||||
  config.client_middleware do |chain|
 | 
					 | 
				
			||||||
    chain.add Mastodon::UniqueRetryJobMiddleware
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +0,0 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Mastodon::UniqueRetryJobMiddleware
 | 
					 | 
				
			||||||
  def call(_worker_class, item, _queue, _redis_pool)
 | 
					 | 
				
			||||||
    return if item['unique_retry'] && retried?(item)
 | 
					 | 
				
			||||||
    yield
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  private
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def retried?(item)
 | 
					 | 
				
			||||||
    # Use unique digest key of SidekiqUniqueJobs
 | 
					 | 
				
			||||||
    unique_key = SidekiqUniqueJobs::UNIQUE_DIGEST_KEY
 | 
					 | 
				
			||||||
    unique_digest = item[unique_key]
 | 
					 | 
				
			||||||
    class_name = item['class']
 | 
					 | 
				
			||||||
    retries = Sidekiq::RetrySet.new
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    retries.any? { |job| job.item['class'] == class_name && job.item[unique_key] == unique_digest }
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user