module SidekiqUniqueJobs::Orphans::Manager
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" } else "uniquejobs=orphan-reaper" end end
def reaper_interval
- See: SidekiqUniqueJobs::Config#reaper_interval -
def reaper_interval SidekiqUniqueJobs.config.reaper_interval end
def reaper_timeout
- See: SidekiqUniqueJobs::Config#reaper_timeout -
def reaper_timeout SidekiqUniqueJobs.config.reaper_timeout end
def register_reaper_process
-
(void)
-
def register_reaper_process redis { |conn| conn.set(UNIQUE_REAPER, 1) } end
def registered?
-
(true, false)
-
def registered? redis { |conn| conn.get(UNIQUE_REAPER) }.to_i == 1 end
def start # rubocop:disable
-
(Concurrent::TimerTask)
- the task that was started
def start # rubocop:disable return if registered? with_logging_context do register_reaper_process log_info("Starting Reaper") task.add_observer(Observer.new) task.execute task end end
def stop
-
(Boolean)
-
def stop with_logging_context do log_info("Stopping Reaper") unregister_reaper_process task.shutdown end end
def task
-
(
-)
def task @task ||= Concurrent::TimerTask.new(timer_task_options) do with_logging_context do redis do |conn| Orphans::Reaper.call(conn) end end end end
def timer_task_options
-
(Hash)
-
def timer_task_options { run_now: true, execution_interval: reaper_interval, timeout_interval: reaper_timeout } end
def unregister_reaper_process
-
(void)
-
def unregister_reaper_process redis { |conn| conn.del(UNIQUE_REAPER) } end