class StatusCat::Checkers::DelayedJob

Public Class Methods

new() click to toggle source
# File lib/status_cat/checkers/delayed_job.rb, line 7
def initialize
  return if gem_missing?('delayed_job', defined?(::Delayed))
  @status = fail_on_exception { test }
end

Public Instance Methods

count_expired(expires) click to toggle source
# File lib/status_cat/checkers/delayed_job.rb, line 26
def count_expired(expires)
  sql = "select count(*) from delayed_jobs where created_at < '#{expires.to_s(:db)}' and failed_at is null"
  result = ::ActiveRecord::Base.connection.execute(sql).first
  return result.is_a?(Hash) ? result['count'] : result[0]
end
count_jobs() click to toggle source
# File lib/status_cat/checkers/delayed_job.rb, line 20
def count_jobs
  sql = 'select count(*) from delayed_jobs where failed_at is null'
  result = ::ActiveRecord::Base.connection.execute(sql).first
  return result.is_a?(Hash) ? result['count'] : result[0]
end
test() click to toggle source
# File lib/status_cat/checkers/delayed_job.rb, line 12
def test
  @value = count_jobs

  expires = 1.day.ago
  expired = count_expired(expires)
  expired.zero? ? nil : "#{expired} jobs more than #{time_ago_in_words(expires)} old"
end