Module: JobBoard::LatencySla
- Defined in:
- app/models/job_board/latency_sla.rb
Overview
Detects a queue's latency SLA from explicit configuration or from the within_* naming convention (e.g. "within_5_minutes" => 300).
Constant Summary collapse
- UNITS =
{ "second" => 1, "minute" => 60, "hour" => 3600, "day" => 86400 }.freeze
Class Method Summary collapse
-
.detect(queue_name) ⇒ Object
Seconds, or nil when the queue has no detectable SLA.
-
.sort(queues) ⇒ Object
Queues with a detectable SLA first, strictest first; the rest alphabetical.
-
.threshold_for(queue_name) ⇒ Object
The latency-warning threshold: the detected SLA, else the global default.
Class Method Details
.detect(queue_name) ⇒ Object
Seconds, or nil when the queue has no detectable SLA.
8 9 10 |
# File 'app/models/job_board/latency_sla.rb', line 8 def self.detect(queue_name) JobBoard.config.latency_warning_thresholds[queue_name.to_s] || from_name(queue_name) end |
.sort(queues) ⇒ Object
Queues with a detectable SLA first, strictest first; the rest alphabetical.
18 19 20 21 22 23 |
# File 'app/models/job_board/latency_sla.rb', line 18 def self.sort(queues) queues.sort_by do |queue| sla = detect(queue.name) [sla ? 0 : 1, sla || 0, queue.name] end end |