lib/sidekiq_unique_jobs/orphans/observer.rb
# frozen_string_literal: true
module SidekiqUniqueJobs
#
# Class DeleteOrphans provides deletion of orphaned digests
#
# @note this is a much slower version of the lua script but does not crash redis
#
# @author Mikael Henriksson <mikael@mhenrixon.com>
#
module Orphans
#
# Observes the Orphan::Manager and provides information about each execution
#
# @author Mikael Henriksson <mikael@mhenrixon.com>
#
class Observer
include SidekiqUniqueJobs::Logging
#
# Runs every time the {Manager} executes the TimerTask
# used for logging information about the reaping
#
# @param [Time] time the time of the execution
# @param [Object] result the result of the execution
# @param [Exception] ex any error raised from the TimerTask
#
# @return [<type>] <description>
#
def update(time, result, ex)
if result
log_info("(#{time}) Execution successfully returned #{result}")
elsif ex.is_a?(Concurrent::TimeoutError)
log_warn("(#{time}) Execution timed out")
else
log_info("(#{time}) Cleanup failed with error #{ex.message}")
log_error(ex)
end
end
end
end
end