class Sidekiq::Cluster::Monitors::OOM

Public Instance Methods

monitor() click to toggle source
# File lib/sidekiq/cluster/monitors/oom.rb, line 7
def monitor
  pool.info 'watching for worker processes exceeding size threshold'
  loop do
    sleep SLEEP_DELAY + 1
    ::Sidekiq::Cluster::Memory.offenders(pool).each { |worker| worker.respawn! }
    break unless pool.operational?
    log_periodically "monitor for Out Of Memory is operational, last logged at #{@last_logged_at}" do
      pool.workers.map(&:status)
    end
  end
  pool.info 'leaving Memory Monitor.'
end