Sha256: 024cd2661cf0dd4ee155366624fae72b2ea294cc4f0073a7a2a594a2f5e9eaa7
Contents?: true
Size: 954 Bytes
Versions: 8
Compression:
Stored size: 954 Bytes
Contents
require 'rosetta_queue/consumer_managers/base' require 'mq' module RosettaQueue class EventedManager < BaseManager def start EM.run { trap_interruptions begin @consumers.each do |key, consumer| RosettaQueue.logger.info("Running consumer #{key} in event machine...") consumer.receive end rescue Exception => e RosettaQueue.logger.error("Exception thrown: #{$!}\n" + e.backtrace.join("\n\t")) end } end def stop RosettaQueue.logger.info("Shutting down event machine...") EM.stop end private def trap_interruptions trap("INT") { RosettaQueue.logger.warn("Interrupt received. Shutting down...") EM.stop } trap("TERM") { RosettaQueue.logger.warn("Interrupt received. Shutting down...") EM.stop } end end end
Version data entries
8 entries across 8 versions & 2 rubygems