class SimpleMessaging::MessageQueue::Rabbit
Attributes
channel[R]
name[R]
queue[R]
Public Class Methods
new(name)
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 9 def initialize(name) @@em_thread ||= Thread.new { EventMachine.run } @@connection ||= AMQP.connect(rabbit_configs) @channel = AMQP::Channel.new(@@connection) @exchange = @channel.default_exchange @queue = @channel.queue(queue_name(name)) @name = name end
Public Instance Methods
delete()
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 37 def delete MessageQueue.unregister_queue(name) @queue.delete end
enqueue(message)
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 18 def enqueue(message) @exchange.publish message, :routing_key => @queue.name, :app_id => app_id end
poll() { |payload| ... }
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 24 def poll(&block) @queue.subscribe do |metadata, payload| yield payload end end
pop() { |payload| ... }
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 30 def pop(&block) @queue.subscribe do |metadata, payload| yield payload break end end
Private Instance Methods
app_id()
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 57 def app_id if defined? Rails Rails.application.class.parent.to_s else "unknown" end end
queue_identifier()
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 44 def queue_identifier MessageQueue.environment end
rabbit_configs()
click to toggle source
# File lib/simple_messaging/message_queue/rabbit.rb, line 48 def rabbit_configs rabbit_config_file = Pathname.new(Dir.pwd).join('config', 'rabbit.yml').to_s if File.exist? rabbit_config_file YAML.load(File.open(rabbit_config_file).read)[MessageQueue.environment] else { host: "127.0.0.1" } end end