Class: SidekiqPublisher::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq_publisher/runner.rb

Constant Summary collapse

LISTENER_TIMEOUT_SECONDS =
60
CHANNEL_NAME =
"sidekiq_publisher_job"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instrumenter = Instrumenter.new) ⇒ Runner

Returns a new instance of Runner.



14
15
16
17
# File 'lib/sidekiq_publisher/runner.rb', line 14

def initialize(instrumenter = Instrumenter.new)
  @instrumenter = instrumenter
  @publisher = Publisher.new(instrumenter: @instrumenter)
end

Class Method Details

.run(instrumenter = Instrumenter.new) ⇒ Object



10
11
12
# File 'lib/sidekiq_publisher/runner.rb', line 10

def self.run(instrumenter = Instrumenter.new)
  new(instrumenter).run
end

Instance Method Details

#runObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/sidekiq_publisher/runner.rb', line 19

def run
  ActiveRecord::PostgresPubSub::Listener.listen(
    CHANNEL_NAME,
    listen_timeout: LISTENER_TIMEOUT_SECONDS
  ) do |listener|
    listener.on_start { call_publish("start") }
    listener.on_notify { call_publish("notify") }
    listener.on_timeout { listener_timeout }
  end
end