Sha256: 02ad6b295e8f0f2b8111d44d6078e3fcb13a891c4cbaacc1f8305a7d18be1bee
Contents?: true
Size: 1.35 KB
Versions: 4
Compression:
Stored size: 1.35 KB
Contents
require "singleton" module Cloudist class Application include Singleton class << self def start(options = {}, &block) options = instance.settings.update(options) AMQP.start(options) do instance.setup_reconnect_hook! instance.instance_eval(&block) if block_given? end end def signal_trap! ::Signal.trap('INT') { Cloudist.stop } ::Signal.trap('TERM'){ Cloudist.stop } end end def settings @@settings ||= default_settings end def settings=(settings_hash) @@settings = default_settings.update(settings_hash) end def default_settings uri = URI.parse(ENV["AMQP_URL"] || 'amqp://guest:guest@localhost:5672/') { :vhost => uri.path, :host => uri.host, :user => uri.user, :port => uri.port || 5672, :pass => uri.password, :heartbeat => 5, :logging => false } rescue Object => e raise "invalid AMQP_URL: (#{uri.inspect}) #{e.class} -> #{e.message}" end private def setup_reconnect_hook! AMQP.conn.connection_status do |status| log.debug("AMQP connection status changed: #{status}") if status == :disconnected AMQP.conn.reconnect(true) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
cloudist-0.4.4 | lib/cloudist/application.rb |
cloudist-0.4.3 | lib/cloudist/application.rb |
cloudist-0.4.2 | lib/cloudist/application.rb |
cloudist-0.4.1 | lib/cloudist/application.rb |