module SidekiqUniqueJobs::Orphans::ReaperResurrector
def current_timestamp
def current_timestamp Time.now.to_i end
def drift_reaper_interval
def drift_reaper_interval reaper_interval + (reaper_interval * DRIFT_FACTOR).to_i end
def logging_context
-
(String)
- when logger does not responds to `:with_context` -
(Hash)
- when logger responds to `:with_context`
def logging_context if logger_context_hash? { "uniquejobs" => "reaper-resurrector" } else "uniquejobs=reaper-resurrector" end end
def orphans_manager
-
(SidekiqUniqueJobs::Orphans::Manager)
-
def orphans_manager SidekiqUniqueJobs::Orphans::Manager end
def reaper
- See: SidekiqUniqueJobs::Config#reaper -
def reaper SidekiqUniqueJobs.config.reaper end
def reaper_disabled?
-
(true, false)
-
Other tags:
- See: reaper_enabled? -
def reaper_disabled? !reaper_enabled? end
def reaper_enabled?
-
(true, false)
-
def reaper_enabled? REAPERS.include?(reaper) end
def reaper_interval
def reaper_interval SidekiqUniqueJobs.config.reaper_interval end
def reaper_registered?
-
(true, false)
-
def reaper_registered? redis do |conn| conn.get(UNIQUE_REAPER).to_i + drift_reaper_interval > current_timestamp end end
def reaper_resurrector_interval
- See: SidekiqUniqueJobs::Config#reaper_resurrector_interval -
def reaper_resurrector_interval SidekiqUniqueJobs.config.reaper_resurrector_interval end
def restart_if_dead
Starts new instance of orphan reaper if reaper is considered dead (reaper mutex has not been refreshed lately)
def restart_if_dead return if reaper_registered? log_info("Reaper is considered dead. Starting new reaper instance") orphans_manager.start end
def resurrector_disabled?
-
(true, false)
-
Other tags:
- See: resurrector_enabled? -
def resurrector_disabled? !resurrector_enabled? end
def resurrector_enabled?
-
(true, false)
-
def resurrector_enabled? SidekiqUniqueJobs.config.reaper_resurrector_enabled end
def run_task
-
(SidekiqUniqueJobs::TimerTask)
-
def run_task log_info("Starting Reaper Resurrector") task.execute task end
def start
-
(SidekiqUniqueJobs::TimerTask)
- the task that was started
def start return if resurrector_disabled? return if reaper_disabled? with_logging_context do run_task end end
def task
-
(SidekiqUniqueJobs::TimerTask)
-
def task SidekiqUniqueJobs::TimerTask.new(timer_task_options) do with_logging_context do restart_if_dead end end end
def timer_task_options
-
(Hash)
-
def timer_task_options { run_now: false, execution_interval: reaper_resurrector_interval } end