Class: ActiveJob::Temporal::ReloadSignalQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/activejob/temporal/reload_signal_queue.rb

Constant Summary collapse

POLL_INTERVAL_SECONDS =
0.05

Instance Method Summary collapse

Constructor Details

#initializeReloadSignalQueue

Returns a new instance of ReloadSignalQueue.



8
9
10
11
# File 'lib/activejob/temporal/reload_signal_queue.rb', line 8

def initialize
  @pending_signal = nil
  @closed = false
end

Instance Method Details

#closeObject



34
35
36
37
# File 'lib/activejob/temporal/reload_signal_queue.rb', line 34

def close
  @closed = true
  @pending_signal = nil
end

#popObject



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/activejob/temporal/reload_signal_queue.rb', line 20

def pop
  loop do
    return nil if @closed

    if @pending_signal
      signal = @pending_signal
      @pending_signal = nil
      return signal
    end

    sleep(POLL_INTERVAL_SECONDS)
  end
end

#push(signal) ⇒ Object



13
14
15
16
17
18
# File 'lib/activejob/temporal/reload_signal_queue.rb', line 13

def push(signal)
  return if @closed || @pending_signal

  @pending_signal = signal
  signal
end