Class: Sidekiq::Monitor::Api::JobsController
- Inherits:
-
ActionController::Base
- Object
- ActionController::Base
- Sidekiq::Monitor::Api::JobsController
- Defined in:
- app/controllers/sidekiq/monitor/api/jobs_controller.rb
Instance Method Summary collapse
- #clean ⇒ Object
- #custom_views ⇒ Object
- #graph ⇒ Object
- #index ⇒ Object
- #retry ⇒ Object
- #statuses ⇒ Object
Instance Method Details
#clean ⇒ Object
59 60 61 62 63 |
# File 'app/controllers/sidekiq/monitor/api/jobs_controller.rb', line 59 def clean cleaner = Sidekiq::Monitor::Cleaner.new cleaner.clean render json: {}, status: :ok end |
#custom_views ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/controllers/sidekiq/monitor/api/jobs_controller.rb', line 32 def custom_views job = Job.find(params[:id]) render json: {}, status: 404 and return if job.blank? views = CustomViews.for_job(job) views = views.collect do |view| { name: view[:name], html: render_to_string(view[:path], locals: {job: job, path: view[:path]}) } end render json: views, status: :ok end |
#graph ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/sidekiq/monitor/api/jobs_controller.rb', line 11 def graph queues_jobs = Job.select('queue, status').all.group_by(&:queue) queues = [] statuses = Job.statuses queues_status_counts = queues_jobs.collect do |queue, jobs| statuses_jobs = jobs.group_by(&:status) statuses_job_counts = statuses_jobs.collect do |status, jobs| next unless statuses.include?(status) [status, jobs.length] end statuses_job_counts = Hash[statuses_job_counts.compact] queues << queue unless queues.include?(queue) { queue: queue }.merge(statuses_job_counts) end queues_status_counts = queues_status_counts.sort_by { |q| q[:queue] } render json: { queues_status_counts: queues_status_counts, statuses: statuses } end |
#index ⇒ Object
7 8 9 |
# File 'app/controllers/sidekiq/monitor/api/jobs_controller.rb', line 7 def index render json: JobsDatatable.new(view_context) end |
#retry ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/controllers/sidekiq/monitor/api/jobs_controller.rb', line 46 def retry id = params[:id] render json: {}, status: 404 and return if id.blank? job = Job.find(id) render json: {}, status: 404 and return if job.blank? args = job.args worker = job.class_name.constantize worker.perform_async(*args) render json: {}, status: :ok end |