From 89cc666212395bf277b4e160b32ad27a497d23e5 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Tue, 21 Oct 2014 19:15:54 +0900 Subject: [PATCH] Define some helper scopes in Delayed::Job for worker status API. --- app/controllers/worker_status_controller.rb | 6 +++--- config/initializers/delayed_job.rb | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/worker_status_controller.rb b/app/controllers/worker_status_controller.rb index d84b1b26..084f8366 100644 --- a/app/controllers/worker_status_controller.rb +++ b/app/controllers/worker_status_controller.rb @@ -20,9 +20,9 @@ class WorkerStatusController < ApplicationController end render json: { - pending: Delayed::Job.where("run_at <= ? AND locked_at IS NULL AND attempts = 0", start).count, - awaiting_retry: Delayed::Job.where("failed_at IS NULL AND attempts > 0").count, - recent_failures: Delayed::Job.where("failed_at IS NOT NULL AND failed_at > ?", 5.days.ago).count, + pending: Delayed::Job.pending.where("run_at <= ?", start).count, + awaiting_retry: Delayed::Job.awaiting_retry.count, + recent_failures: Delayed::Job.failed.where('failed_at > ?', 5.days.ago).count, event_count: count, max_id: max_id || 0, events_url: events_url, diff --git a/config/initializers/delayed_job.rb b/config/initializers/delayed_job.rb index c3c7e78d..cf2d29c1 100644 --- a/config/initializers/delayed_job.rb +++ b/config/initializers/delayed_job.rb @@ -7,3 +7,9 @@ Delayed::Worker.delay_jobs = !Rails.env.test? # Delayed::Worker.logger = Logger.new(Rails.root.join('log', 'delayed_job.log')) # Delayed::Worker.logger.level = Logger::DEBUG + +class Delayed::Job + scope :pending, ->{ where("locked_at IS NULL AND attempts = 0") } + scope :awaiting_retry, ->{ where("failed_at IS NULL AND attempts > 0") } + scope :failed, -> { where("failed_at IS NOT NULL") } +end