Class: SolidQueueMonitor::MonitorController
- Inherits:
-
ActionController::Base
- Object
- ActionController::Base
- SolidQueueMonitor::MonitorController
- Includes:
- ActionController::HttpAuthentication::Basic::ControllerMethods
- Defined in:
- app/controllers/solid_queue_monitor/monitor_controller.rb
Instance Method Summary collapse
- #execute_jobs ⇒ Object
- #failed_jobs ⇒ Object
- #index ⇒ Object
- #queues ⇒ Object
- #ready_jobs ⇒ Object
- #recurring_jobs ⇒ Object
- #scheduled_jobs ⇒ Object
Instance Method Details
#execute_jobs ⇒ Object
68 69 70 71 72 73 74 75 76 |
# File 'app/controllers/solid_queue_monitor/monitor_controller.rb', line 68 def execute_jobs if params[:job_ids].present? SolidQueueMonitor::ExecuteJobService.new.execute_many(params[:job_ids]) redirect_url = "#{scheduled_jobs_path}?message=Selected jobs moved to ready queue&message_type=success" else redirect_url = "#{scheduled_jobs_path}?message=No jobs selected&message_type=error" end redirect_to redirect_url end |
#failed_jobs ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'app/controllers/solid_queue_monitor/monitor_controller.rb', line 51 def failed_jobs base_query = SolidQueue::FailedExecution.includes(:job).order(created_at: :desc) @failed_jobs = paginate(filter_failed_jobs(base_query)) render_page('Failed Jobs', SolidQueueMonitor::FailedJobsPresenter.new(@failed_jobs[:records], current_page: @failed_jobs[:current_page], total_pages: @failed_jobs[:total_pages], filters: filter_params ).render) end |
#index ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'app/controllers/solid_queue_monitor/monitor_controller.rb', line 9 def index @stats = SolidQueueMonitor::StatsCalculator.calculate # Get all jobs with pagination @recent_jobs = paginate(filter_jobs(SolidQueue::Job.order(created_at: :desc))) # Preload failed job information preload_job_statuses(@recent_jobs[:records]) render_page('Overview', generate_overview_content) end |
#queues ⇒ Object
61 62 63 64 65 66 |
# File 'app/controllers/solid_queue_monitor/monitor_controller.rb', line 61 def queues @queues = SolidQueue::Job.group(:queue_name) .select('queue_name, COUNT(*) as job_count') .order('job_count DESC') render_page('Queues', SolidQueueMonitor::QueuesPresenter.new(@queues).render) end |
#ready_jobs ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'app/controllers/solid_queue_monitor/monitor_controller.rb', line 21 def ready_jobs base_query = SolidQueue::ReadyExecution.includes(:job).order(created_at: :desc) @ready_jobs = paginate(filter_ready_jobs(base_query)) render_page('Ready Jobs', SolidQueueMonitor::ReadyJobsPresenter.new(@ready_jobs[:records], current_page: @ready_jobs[:current_page], total_pages: @ready_jobs[:total_pages], filters: filter_params ).render) end |
#recurring_jobs ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'app/controllers/solid_queue_monitor/monitor_controller.rb', line 41 def recurring_jobs base_query = filter_recurring_jobs(SolidQueue::RecurringTask.order(:key)) @recurring_jobs = paginate(base_query) render_page('Recurring Jobs', SolidQueueMonitor::RecurringJobsPresenter.new(@recurring_jobs[:records], current_page: @recurring_jobs[:current_page], total_pages: @recurring_jobs[:total_pages], filters: filter_params ).render) end |
#scheduled_jobs ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'app/controllers/solid_queue_monitor/monitor_controller.rb', line 31 def scheduled_jobs base_query = SolidQueue::ScheduledExecution.includes(:job).order(scheduled_at: :asc) @scheduled_jobs = paginate(filter_scheduled_jobs(base_query)) render_page('Scheduled Jobs', SolidQueueMonitor::ScheduledJobsPresenter.new(@scheduled_jobs[:records], current_page: @scheduled_jobs[:current_page], total_pages: @scheduled_jobs[:total_pages], filters: filter_params ).render) end |