module ActiveJob::Uniqueness
Constants
- VERSION
Public Class Methods
config()
click to toggle source
# File lib/active_job/uniqueness.rb, line 26 def config @config ||= ActiveJob::Uniqueness::Configuration.new end
configure() { |config| ... }
click to toggle source
# File lib/active_job/uniqueness.rb, line 22 def configure yield config end
lock_manager()
click to toggle source
# File lib/active_job/uniqueness.rb, line 30 def lock_manager @lock_manager ||= ActiveJob::Uniqueness::LockManager.new(config.redlock_servers, config.redlock_options) end
test_mode!()
click to toggle source
# File lib/active_job/uniqueness.rb, line 38 def test_mode! @lock_manager = ActiveJob::Uniqueness::TestLockManager.new end
unlock!(**args)
click to toggle source
# File lib/active_job/uniqueness.rb, line 34 def unlock!(**args) lock_manager.delete_locks(ActiveJob::Uniqueness::LockKey.new(**args).wildcard_key) end
unlock_sidekiq_job!(job_data)
click to toggle source
# File lib/active_job/uniqueness/sidekiq_patch.rb, line 8 def self.unlock_sidekiq_job!(job_data) return unless job_data['class'] == 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper' # non ActiveJob jobs job = ActiveJob::Base.deserialize(job_data.fetch('args').first) return unless job.class.lock_strategy_class begin job.send(:deserialize_arguments_if_needed) rescue ActiveJob::DeserializationError # Most probably, GlobalID fails to locate AR record (record is deleted) else ActiveJob::Uniqueness.unlock!(job_class_name: job.class.name, arguments: job.arguments) end end