Sha256: a56d0eb6ef4ae2e2b962fdb76d4d6c4b800f29579e75eb81503d1dc03a0c7678

Contents?: true

Size: 914 Bytes

Versions: 3

Compression:

Stored size: 914 Bytes

Contents

module RocketJobMissionControl
  class ActiveProcessesController < RocketJobMissionControl::ApplicationController
    def index
      # The list of workers actively processing jobs
      # [Array[Array<worker_name [String], job [RocketJob::Job], slice_id [String]]]
      sorted = true
      t      = Time.new
      busy   = []
      RocketJob::Job.running.sort(:worker_name).collect do |job|
        if job.respond_to?(:input)
          sorted = false
          job.input.each('state' => 'running') do |slice|
            busy << [slice.worker_name, job, slice.started_at]
          end
        else
          busy << [job.worker_name, job, job.started_at]
        end
      end
      @busy = sorted ? busy : busy.sort_by { |result| result.first }
      respond_to do |format|
        format.html
        format.json { render(json: ActiveProcessesDatatable.new(view_context, @busy)) }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rocketjob_mission_control-2.0.0 app/controllers/rocket_job_mission_control/active_processes_controller.rb
rocketjob_mission_control-2.0.0.rc2 app/controllers/rocket_job_mission_control/active_processes_controller.rb
rocketjob_mission_control-2.0.0.rc1 app/controllers/rocket_job_mission_control/active_processes_controller.rb