10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'app/services/solid_queue_web/queue_depth_alert.rb', line 10
def call
return unless configured?
queue_depths = SolidQueue::ReadyExecution
.joins(:job)
.group("solid_queue_jobs.queue_name")
.count
queue_depths.each do |queue_name, depth|
threshold = SolidQueueWeb.alert_queue_thresholds[queue_name.to_s]
next unless threshold && depth >= threshold
next unless should_fire?(queue_name)
urls = webhook_urls
Thread.new { urls.each { |url| post(url, queue_name, depth, threshold) } }
end
end
|