Class: SidekiqUniqueJobs::OnConflict::Reschedule
- Includes:
- JSON, Logging, Reflectable, SidekiqWorkerMethods
- Defined in:
- lib/sidekiq_unique_jobs/on_conflict/reschedule.rb
Overview
Strategy to reschedule job on conflict
Instance Attribute Summary
Attributes inherited from Strategy
Instance Method Summary collapse
-
#call ⇒ Object
Create a new job from the current one.
-
#initialize(item, redis_pool = nil) ⇒ Reschedule
constructor
A new instance of Reschedule.
Methods included from Reflectable
Methods included from JSON
dump_json, load_json, safe_load_json
Methods included from Logging
#build_message, included, #log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger, #logging_context, #with_configured_loggers_context, #with_logging_context
Methods included from SidekiqWorkerMethods
#after_unlock_hook, #default_worker_options, #sidekiq_worker_class?, #worker_class, #worker_class_constantize, #worker_method_defined?, #worker_options
Methods inherited from Strategy
Methods included from Timing
clock_stamp, now_f, time_source, timed
Methods included from Script::Caller
call_script, debug_lua, do_call, extract_args, max_history, now_f, redis_version
Constructor Details
#initialize(item, redis_pool = nil) ⇒ Reschedule
Returns a new instance of Reschedule.
15 16 17 18 |
# 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 |
Instance Method Details
#call ⇒ Object
Create a new job from the current one.
This will mess up sidekiq stats because a new job is created
22 23 24 25 26 27 28 29 30 31 32 |
# 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 |