diff --git a/lib/active_job/uniqueness/active_job_patch.rb b/lib/active_job/uniqueness/active_job_patch.rb index 330b900..3daebae 100644 --- a/lib/active_job/uniqueness/active_job_patch.rb +++ b/lib/active_job/uniqueness/active_job_patch.rb @@ -41,7 +41,9 @@ def unlock!(*arguments) private - delegate :validate_on_conflict_action!, :validate_on_redis_connection_error!, to: :'ActiveJob::Uniqueness.config' + delegate :validate_on_conflict_action!, + :validate_on_redis_connection_error!, + to: :'ActiveJob::Uniqueness.config' end included do diff --git a/lib/active_job/uniqueness/configuration.rb b/lib/active_job/uniqueness/configuration.rb index 113d230..357b92d 100644 --- a/lib/active_job/uniqueness/configuration.rb +++ b/lib/active_job/uniqueness/configuration.rb @@ -36,7 +36,6 @@ def validate_on_conflict_action!(action) raise ActiveJob::Uniqueness::InvalidOnConflictAction, "Unexpected '#{action}' action on conflict" end - def on_redis_connection_error=(action) validate_on_redis_connection_error!(action) @@ -44,7 +43,7 @@ def on_redis_connection_error=(action) end def validate_on_redis_connection_error!(action) - return if action.nil? || :raise == action || action.respond_to?(:call) + return if action.nil? || action == :raise || action.respond_to?(:call) raise ActiveJob::Uniqueness::InvalidOnConflictAction, "Unexpected '#{action}' action on_redis_connection_error" end diff --git a/lib/active_job/uniqueness/sidekiq_patch.rb b/lib/active_job/uniqueness/sidekiq_patch.rb index b5aa0dc..d0fd9f4 100644 --- a/lib/active_job/uniqueness/sidekiq_patch.rb +++ b/lib/active_job/uniqueness/sidekiq_patch.rb @@ -41,7 +41,7 @@ def remove_job module ScheduledSet def delete(score, job_id) entry = find_job(job_id) - ActiveJob::Uniqueness.unlock_sidekiq_job!(entry.item) if super(score, job_id) + ActiveJob::Uniqueness.unlock_sidekiq_job!(entry.item) if super entry end end @@ -67,7 +67,7 @@ def clear end def delete_by_value(name, value) - ActiveJob::Uniqueness.unlock_sidekiq_job!(Sidekiq.load_json(value)) if super(name, value) + ActiveJob::Uniqueness.unlock_sidekiq_job!(Sidekiq.load_json(value)) if super end end end diff --git a/lib/active_job/uniqueness/strategies/base.rb b/lib/active_job/uniqueness/strategies/base.rb index 199ba02..14c0d84 100644 --- a/lib/active_job/uniqueness/strategies/base.rb +++ b/lib/active_job/uniqueness/strategies/base.rb @@ -59,16 +59,14 @@ def after_perform module LockingOnEnqueue def before_enqueue - case lock(resource: lock_key, ttl: lock_ttl) - in [:handle_redis_connection_error, error] - handle_redis_connection_error(resource: lock_key, on_redis_connection_error: on_redis_connection_error, error: error) + when [:handle_redis_connection_error, error] + handle_redis_connection_error(resource: lock_key, on_redis_connection_error: on_redis_connection_error, + error: error) abort_job - in nil | false + when nil, false handle_conflict(resource: lock_key, on_conflict: on_conflict) abort_job - else - return end end @@ -98,10 +96,9 @@ def handle_conflict(on_conflict:, resource:, event: :conflict) def handle_redis_connection_error(resource:, on_redis_connection_error:, error:) case on_redis_connection_error - when :raise then raise error - when nil then raise error + when :raise, nil then raise error else - on_redis_connection_error.call(job, resource:, error:) + on_redis_connection_error.call(job, resource: resource, error: error) end end