Module: HireFire::Macro::QC
- Extended by:
- Deprecated::QC, QC, Utility
- Included in:
- QC
- Defined in:
- lib/hirefire/macro/queue_classic.rb
Instance Method Summary collapse
-
#job_queue_latency(*queues) ⇒ Float
Calculates the maximum job queue latency using Queue Classic.
-
#job_queue_size(*queues) ⇒ Integer
Calculates the total job queue size using Queue Classic.
Methods included from Deprecated::QC
Instance Method Details
#job_queue_latency(*queues) ⇒ Float
Calculates the maximum job queue latency using Queue Classic. 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 37 38 39 40 41 42 43 44 45 |
# File 'lib/hirefire/macro/queue_classic.rb', line 24 def job_queue_latency(*queues) queues = normalize_queues(queues, allow_empty: true) query = " SELECT EXTRACT(EPOCH FROM (now() - scheduled_at)) AS latency\n FROM \#{::QC.table_name}\n WHERE scheduled_at <= now()\n \#{filter_by_queues_if_any(queues)}\n ORDER BY scheduled_at ASC\n LIMIT 1\n SQL\n\n connection = ::QC.default_conn_adapter\n\n result = if queues.any?\n connection.execute(query, \"{\#{queues.to_a.join(\",\")}}\")\n else\n connection.execute(query)\n end\n\n (result && result[\"latency\"]) ? result[\"latency\"].to_f : 0.0\nend\n" |
#job_queue_size(*queues) ⇒ Integer
Calculates the total job queue size using Queue Classic. If no queues are specified, it measures size across all available queues.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/hirefire/macro/queue_classic.rb', line 59 def job_queue_size(*queues) queues = normalize_queues(queues, allow_empty: true) query = " SELECT COUNT(*) FROM \#{::QC.table_name}\n WHERE scheduled_at <= now()\n \#{filter_by_queues_if_any(queues)}\n SQL\n\n connection = ::QC.default_conn_adapter\n\n result = if queues.any?\n connection.execute(query, \"{\#{queues.to_a.join(\",\")}}\")\n else\n connection.execute(query)\n end\n\n result[\"count\"].to_i\nend\n" |