module SmartQue
Constants
- VERSION
Public Class Methods
config()
click to toggle source
Methods related to configurations
# File lib/smart_que.rb, line 15 def self.config @config ||= Config.new end
configure() { |config| ... }
click to toggle source
# File lib/smart_que.rb, line 19 def self.configure yield(config) if block_given? config end
connect(session)
click to toggle source
Start & Connect Bunny Session
# File lib/smart_que.rb, line 54 def self.connect(session) begin session.start rescue Bunny::TCPConnectionFailed => ex log("Connection Failed: #{ex.message}") raise ConnectionError end end
create_connection(options = {})
click to toggle source
# File lib/smart_que.rb, line 42 def self.create_connection(options = {}) conn = Bunny.new( host: config.host, port: config.port, vhost: fetch_parameters('vhost'), username: config.username, password: config.password ) connect(conn) end
default_log_file()
click to toggle source
# File lib/smart_que.rb, line 88 def self.default_log_file log_file = "log/smart_que.log" dir = File.dirname(log_file) unless File.directory?(dir) FileUtils.mkdir_p(dir) end log_file end
establish_connection(options = {})
click to toggle source
Establish bunny connection
# File lib/smart_que.rb, line 25 def self.establish_connection(options = {}) unless @conn_pool @conn_pool = ConnectionPool.new do create_connection(options) end end @conn_pool.with do |conn| # Reestablish connection if closed if !conn.open? && !conn.automatically_recover? connect(conn) end # Return connection object conn end end
fetch_parameters(parameter, options = {})
click to toggle source
# File lib/smart_que.rb, line 63 def self.fetch_parameters(parameter, options = {}) (options[parameter] || config.send(parameter)) end
log(data)
click to toggle source
Logger
# File lib/smart_que.rb, line 68 def self.log(data) env = ENV['RAILS_ENV'] || config.env proc = Proc.new do if config.logger @logger = config.logger else logfile = config.logfile || default_log_file @logger = Logger.new(logfile, 'weekly') end end return if (env == 'testing' or env == 'test') @logger ||= proc.call @logger.info(data.inspect) end