class SidekiqUniqueJobs::OnConflict::Reschedule

Strategy to reschedule job on conflict

@author Mikael Henriksson <mikael@mhenrixon.com>

Public Class Methods

new(item, redis_pool = nil) click to toggle source

@param [Hash] item sidekiq job hash

# File lib/sidekiq_unique_jobs/on_conflict/reschedule.rb, line 15
def initialize(item, redis_pool = nil)
  super(item, redis_pool)
  @worker_class = item[CLASS]
end

Public Instance Methods

call() click to toggle source

Create a new job from the current one.

This will mess up sidekiq stats because a new job is created
# File lib/sidekiq_unique_jobs/on_conflict/reschedule.rb, line 22
def call
  if sidekiq_worker_class?
    if worker_class.perform_in(5, *item[ARGS])
      reflect(:rescheduled, item)
    else
      reflect(:reschedule_failed, item)
    end
  else
    reflect(:unknown_sidekiq_worker, item)
  end
end