Class: SolidQueueWeb::StaleProcessAlert

Inherits:
Object
  • Object
show all
Defined in:
app/services/solid_queue_web/stale_process_alert.rb

Constant Summary collapse

MUTEX =
Mutex.new

Class Method Summary collapse

Class Method Details

.callObject



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/solid_queue_web/stale_process_alert.rb', line 10

def call
  return unless configured?

  stale_count = SolidQueue::Process
    .where("last_heartbeat_at < ?", SolidQueue.process_alive_threshold.ago)
    .count

  return if stale_count < SolidQueueWeb.alert_stale_process_threshold
  return unless should_fire?

  urls = webhook_urls
  Thread.new { urls.each { |url| post(url, stale_count) } }
end

.reset!Object



24
25
26
# File 'app/services/solid_queue_web/stale_process_alert.rb', line 24

def reset!
  MUTEX.synchronize { @last_fired_at = nil }
end