Sha256: fc796bd67dd1f2162ba23a637424c278509fc88917dc02579d344b552e9cf5f9
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module GoodJob class JobsFilter < BaseFilter def states { 'scheduled' => base_query.scheduled.count, 'retried' => base_query.retried.count, 'queued' => base_query.queued.count, 'running' => base_query.running.count, 'finished' => base_query.finished.count, 'discarded' => base_query.discarded.count, } end def filtered_query query = base_query.includes(:executions).includes_advisory_locks query = query.job_class(params[:job_class]) if params[:job_class].present? query = query.where(queue_name: params[:queue_name]) if params[:queue_name].present? query = query.search_text(params[:query]) if params[:query].present? if params[:state] case params[:state] when 'discarded' query = query.discarded when 'finished' query = query.finished when 'retried' query = query.retried when 'scheduled' query = query.scheduled when 'running' query = query.running.select("#{GoodJob::ActiveJobJob.table_name}.*", 'pg_locks.locktype') when 'queued' query = query.queued end end query end def filtered_query_count filtered_query.unscope(:select).count end private def default_base_query GoodJob::ActiveJobJob.all end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
good_job-2.14.1 | engine/app/filters/good_job/jobs_filter.rb |
good_job-2.14.0 | engine/app/filters/good_job/jobs_filter.rb |