Module: ActiveJob::QueueAdapters::SolidQueueExt

Includes:
RecurringTasks, Workers, FlightControl::Adapter
Defined in:
lib/active_job/queue_adapters/solid_queue_ext.rb

Defined Under Namespace

Classes: SolidQueueJobs

Instance Method Summary collapse

Methods included from RecurringTasks

#can_enqueue_recurring_task?, #enqueue_recurring_task, #find_recurring_task, #recurring_tasks, #supports_recurring_tasks?

Methods included from Workers

#count_workers, #exposes_workers?, #fetch_workers, #find_worker

Methods included from FlightControl::Adapter

#activating, #exposes_workers?, #find_recurring_task, #find_worker, #recurring_tasks, #supports_job_filter?, #supports_job_status?, #supports_queue_pausing?, #supports_recurring_tasks?, #workers

Instance Method Details

#clear_queue(queue_name) ⇒ Object



23
24
25
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 23

def clear_queue(queue_name)
  find_queue_by_name(queue_name).clear
end

#discard_all_jobs(jobs_relation) ⇒ Object



65
66
67
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 65

def discard_all_jobs(jobs_relation)
  SolidQueueJobs.new(jobs_relation).discard_all
end

#discard_job(job, jobs_relation) ⇒ Object



69
70
71
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 69

def discard_job(job, jobs_relation)
  find_solid_queue_job!(job.job_id, jobs_relation).discard
end

#dispatch_job(job, jobs_relation) ⇒ Object



73
74
75
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 73

def dispatch_job(job, jobs_relation)
  dispatch_immediately find_solid_queue_job!(job.job_id, jobs_relation)
end

#fetch_jobs(jobs_relation) ⇒ Object



51
52
53
54
55
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 51

def fetch_jobs(jobs_relation)
  SolidQueueJobs.new(jobs_relation).jobs.map do |job|
    deserialize_and_proxy_solid_queue_job(job, jobs_relation.status)
  end
end

#find_job(job_id) ⇒ Object



77
78
79
80
81
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 77

def find_job(job_id, *)
  if (job = SolidQueue::Job.where(active_job_id: job_id).order(:id).last)
    deserialize_and_proxy_solid_queue_job job
  end
end

#jobs_count(jobs_relation) ⇒ Object



47
48
49
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 47

def jobs_count(jobs_relation)
  SolidQueueJobs.new(jobs_relation).count
end

#pause_queue(queue_name) ⇒ Object



27
28
29
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 27

def pause_queue(queue_name)
  find_queue_by_name(queue_name).pause
end

#queue_paused?(queue_name) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 35

def queue_paused?(queue_name)
  find_queue_by_name(queue_name).paused?
end

#queue_size(queue_name) ⇒ Object



19
20
21
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 19

def queue_size(queue_name)
  find_queue_by_name(queue_name).size
end

#queuesObject



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 6

def queues
  queues = SolidQueue::Queue.all
  pauses = SolidQueue::Pause.where(queue_name: queues.map(&:name)).index_by(&:queue_name)

  queues.collect do |queue|
    {
      name: queue.name,
      size: queue.size,
      active: pauses[queue.name].nil?
    }
  end
end

#resume_queue(queue_name) ⇒ Object



31
32
33
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 31

def resume_queue(queue_name)
  find_queue_by_name(queue_name).resume
end

#retry_all_jobs(jobs_relation) ⇒ Object



57
58
59
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 57

def retry_all_jobs(jobs_relation)
  SolidQueueJobs.new(jobs_relation).retry_all
end

#retry_job(job, jobs_relation) ⇒ Object



61
62
63
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 61

def retry_job(job, jobs_relation)
  find_solid_queue_job!(job.job_id, jobs_relation).retry
end

#supported_job_filtersObject



43
44
45
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 43

def supported_job_filters(*)
  [:queue_name, :job_class_name, :finished_at]
end

#supported_job_statusesObject



39
40
41
# File 'lib/active_job/queue_adapters/solid_queue_ext.rb', line 39

def supported_job_statuses
  SolidQueueJobs::STATUS_MAP.keys
end