Class: SolidQueueWeb::Job

Inherits:
Object
  • Object
show all
Defined in:
app/models/solid_queue_web/job.rb

Constant Summary collapse

STATUSES =
%w[ready scheduled claimed blocked failed].freeze
DISCARDABLE =
%w[ready scheduled blocked].freeze
EXECUTION_MODELS =
{
  "ready"     => SolidQueue::ReadyExecution,
  "scheduled" => SolidQueue::ScheduledExecution,
  "claimed"   => SolidQueue::ClaimedExecution,
  "blocked"   => SolidQueue::BlockedExecution,
  "failed"    => SolidQueue::FailedExecution
}.freeze

Class Method Summary collapse

Class Method Details

.derive_status(job) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'app/models/solid_queue_web/job.rb', line 19

def self.derive_status(job)
  return "failed"    if job.failed_execution.present?
  return "claimed"   if job.claimed_execution.present?
  return "blocked"   if job.blocked_execution.present?
  return "ready"     if job.ready_execution.present?
  return "scheduled" if job.scheduled_execution.present?

  "finished"
end

.execution_model_for!(status) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
17
# File 'app/models/solid_queue_web/job.rb', line 13

def self.execution_model_for!(status)
  raise ArgumentError, "Cannot discard #{status} jobs from this page." unless DISCARDABLE.include?(status)

  EXECUTION_MODELS[status]
end