Sha256: 5a6806f603e43d35fe9014c055d93d40703fd4d5ad5d988796d14452525a5994
Contents?: true
Size: 1.32 KB
Versions: 3
Compression:
Stored size: 1.32 KB
Contents
module Eventboss class Runner extend Logging class << self def launch queues = Eventboss::QueueListener.select( include: Eventboss.configuration.listeners[:include], exclude: Eventboss.configuration.listeners[:exclude] ) client = Eventboss.configuration.sqs_client config = Eventboss.configuration Eventboss::Instrumentation.add(queues) launcher = Launcher.new(queues, client, worker_count: config.concurrency) self_read = setup_signals([:SIGTERM]) logger.info('Active Listeners:') logger.info(queues.to_s) begin launcher.start handle_signals(self_read, launcher) rescue Interrupt launcher.stop exit 0 end end private def setup_signals(signals) self_read, self_write = IO.pipe signals.each do |signal| trap signal do self_write.puts signal end end self_read end def handle_signals(self_read, launcher) while readable_io = IO.select([self_read]) signal = readable_io.first[0].gets.strip logger.info('runner') { "Received #{ signal } signal, gracefully shutdowning..." } launcher.stop exit 0 end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
eventboss-1.3.1 | lib/eventboss/runner.rb |
eventboss-1.3.0 | lib/eventboss/runner.rb |
eventboss-1.2.1 | lib/eventboss/runner.rb |