Class: Joblin::Uniqueness::OnConflict::Reject
- Defined in:
- lib/joblin/uniqueness/on_conflict/reject.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
#initialize, #replace?, valid_for
Constructor Details
This class inherits a constructor from Joblin::Uniqueness::OnConflict::Base
Instance Method Details
#call ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/joblin/uniqueness/on_conflict/reject.rb', line 6 def call # TODO Allow this to work on Sidekiq-backed ActiveJob unless lock_context.is_a?(Joblin::Uniqueness::Compat::Sidekiq::SidekiqLockContext) Joblin::Uniqueness.logger.error(":reject conflict strategy is not supported for non-Sidekiq-backed jobs") return end # Sidekiq::DeadSet lives in sidekiq/api, which isn't loaded server-side # by default; require it so we don't blow up with NameError here. require "sidekiq/api" kwargs = {} # Sidekiq's DeadSet#kill is `kill(message, opts = {})` (arity -2) on 7/8 # and `kill(message)` (arity 1) on very old versions. Pass notify_failure # only when the method actually accepts options. kwargs[:notify_failure] = false if Sidekiq::DeadSet.instance_method(:kill).arity != 1 = lock_context.instance_variable_get(:@job_instance) Sidekiq::DeadSet.new.kill(JSON.dump(), **kwargs) end |