Class: Pgbus::QueueState

Inherits:
BusRecord
  • Object
show all
Defined in:
app/models/pgbus/queue_state.rb

Class Method Summary collapse

Class Method Details

.pause!(queue_name, reason: nil) ⇒ Object



13
14
15
16
17
# File 'app/models/pgbus/queue_state.rb', line 13

def self.pause!(queue_name, reason: nil)
  record = find_or_initialize_by(queue_name: queue_name)
  record.update!(paused: true, paused_reason: reason, paused_at: Time.current, circuit_breaker_resume_at: nil)
  record
end

.paused?(queue_name) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
# File 'app/models/pgbus/queue_state.rb', line 9

def self.paused?(queue_name)
  where(queue_name: queue_name, paused: true).exists?
end

.resume!(queue_name) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/models/pgbus/queue_state.rb', line 19

def self.resume!(queue_name)
  record = find_by(queue_name: queue_name)
  return unless record

  record.update!(
    paused: false,
    paused_reason: nil,
    paused_at: nil,
    circuit_breaker_trip_count: 0,
    circuit_breaker_resume_at: nil
  )
  record
end