Module: HireFire::Macro::Que
Instance Method Summary collapse
-
#job_queue_latency(*queues) ⇒ Float
Calculates the maximum job queue latency using Que.
-
#job_queue_size(*queues) ⇒ Integer
Calculates the total job queue size using Que.
Methods included from Deprecated::Que
Instance Method Details
#job_queue_latency(*queues) ⇒ Float
Calculates the maximum job queue latency using Que. If no queues are specified, it measures latency across all available queues.
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/hirefire/macro/que.rb', line 24 def job_queue_latency(*queues) query = <<~SQL SELECT run_at FROM que_jobs WHERE run_at <= NOW() AND finished_at IS NULL AND expired_at IS NULL #{filter_by_queues_if_any(queues)} ORDER BY run_at ASC LIMIT 1 SQL result = ::Que.execute(query).first result ? (Time.now - result[:run_at].to_time) : 0.0 end |
#job_queue_size(*queues) ⇒ Integer
Calculates the total job queue size using Que. If no queues are specified, it measures size across all available queues.
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/hirefire/macro/que.rb', line 50 def job_queue_size(*queues) query = <<~SQL SELECT COUNT(*) AS total FROM que_jobs WHERE run_at <= NOW() AND finished_at IS NULL AND expired_at IS NULL #{filter_by_queues_if_any(queues)} SQL ::Que.execute(query).first.fetch(:total).to_i end |