Class: SolidQueueTui::Data::FailedQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_queue_tui/data/failed_query.rb

Defined Under Namespace

Classes: FailedJob

Class Method Summary collapse

Class Method Details

.count(filter: nil, queue: nil) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/solid_queue_tui/data/failed_query.rb', line 25

def self.count(filter: nil, queue: nil)
  scope = SolidQueue::FailedExecution.joins(:job)
  scope = scope.merge(SolidQueue::Job.where("class_name LIKE ?", "%#{filter}%")) if filter.present?
  scope = scope.merge(SolidQueue::Job.where(queue_name: queue)) if queue.present?
  scope.count
rescue => e
  Rails.logger.tagged("SQTUI") { Rails.logger.error("FailedQuery.count error: #{e.class}: #{e.message}") } if defined?(Rails) && Rails.logger
  0
end

.fetch(filter: nil, queue: nil, limit: 100, offset: 0) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/solid_queue_tui/data/failed_query.rb', line 13

def self.fetch(filter: nil, queue: nil, limit: 100, offset: 0)
  scope = SolidQueue::FailedExecution.joins(:job).includes(:job)
  scope = scope.merge(SolidQueue::Job.where("class_name LIKE ?", "%#{filter}%")) if filter.present?
  scope = scope.merge(SolidQueue::Job.where(queue_name: queue)) if queue.present?
  scope = scope.order(created_at: :desc).offset(offset).limit(limit)

  scope.map { |fe| build_failed_job(fe) }
rescue => e
  Rails.logger.tagged("SQTUI") { Rails.logger.error("FailedQuery.fetch error: #{e.class}: #{e.message}") } if defined?(Rails) && Rails.logger
  []
end

.fetch_one(id) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/solid_queue_tui/data/failed_query.rb', line 35

def self.fetch_one(id)
  fe = SolidQueue::FailedExecution.includes(:job).find_by(id: id)
  return nil unless fe

  build_failed_job(fe)
rescue => e
  nil
end