Class: RailsConsolePro::Services::QueueActionService

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_console_pro/services/queue_action_service.rb

Defined Under Namespace

Classes: ActionResult

Instance Method Summary collapse

Instance Method Details

#perform(action:, jid:, queue: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rails_console_pro/services/queue_action_service.rb', line 10

def perform(action:, jid:, queue: nil)
  jid = jid.to_s.strip
  return ActionResult.new(success: false, warning: 'Please provide a job id (jid)') if jid.empty?

  unless sidekiq_available?
    return ActionResult.new(success: false, warning: 'Queue actions are only supported for Sidekiq adapters right now.')
  end

  unless ensure_sidekiq_api_loaded
    return ActionResult.new(success: false, warning: "Unable to load Sidekiq API. Require 'sidekiq/api' and try again.")
  end

  case action.to_sym
  when :retry
    retry_job(jid)
  when :delete
    delete_job(jid, queue)
  when :details
    job_details(jid, queue)
  else
    ActionResult.new(success: false, warning: "Unknown jobs action: #{action}")
  end
rescue => e
  ActionResult.new(success: false, warning: e.message)
end