Sha256: bc0774f817f0bae8b978c7fa40fa68159cbb68a5ebf302bee14f350da2c1171e
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
module Eventboss class Runner extend Logging class << self def launch queues = Eventboss::QueueListener.list 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]) 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("Received #{ signal } signal, gracefully shutdowning...", 'runner') launcher.stop exit 0 end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eventboss-1.1.2 | lib/eventboss/runner.rb |
eventboss-1.1.1 | lib/eventboss/runner.rb |