Class: SolidQueueTui::Data::HourlyStatsQuery

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

Defined Under Namespace

Classes: Result

Class Method Summary collapse

Class Method Details

.empty_resultObject



39
40
41
42
43
# File 'lib/solid_queue_tui/data/hourly_stats_query.rb', line 39

def self.empty_result
  now = Time.now.utc
  data = (0..23).map { |i| (now - (23 - i) * 3600).strftime("%H").to_i }
  Result.new(data: data.map { 0 }, total: 0, peak: 0, avg: 0)
end

.enqueued_per_hourObject



8
9
10
11
12
13
14
15
16
# File 'lib/solid_queue_tui/data/hourly_stats_query.rb', line 8

def self.enqueued_per_hour
  raw = SolidQueue::Job
    .where(created_at: 24.hours.ago..)
    .group(hour_sql(:created_at))
    .count
  build_result(raw)
rescue => e
  empty_result
end

.failed_per_hourObject



29
30
31
32
33
34
35
36
37
# File 'lib/solid_queue_tui/data/hourly_stats_query.rb', line 29

def self.failed_per_hour
  raw = SolidQueue::FailedExecution
    .where(created_at: 24.hours.ago..)
    .group(hour_sql(:created_at))
    .count
  build_result(raw)
rescue => e
  empty_result
end

.processed_per_hourObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/solid_queue_tui/data/hourly_stats_query.rb', line 18

def self.processed_per_hour
  raw = SolidQueue::Job
    .where.not(finished_at: nil)
    .where(finished_at: 24.hours.ago..)
    .group(hour_sql(:finished_at))
    .count
  build_result(raw)
rescue => e
  empty_result
end