Class: ActionEvent::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/action_event/message.rb

Constant Summary collapse

@@default_queue =
:medium

Class Method Summary collapse

Class Method Details

.deliver(queue_name, event, params = {}) ⇒ Object



6
7
8
# File 'lib/action_event/message.rb', line 6

def self.deliver(queue_name, event, params = {})
  with_queue(queue_name) { |queue| queue.publish(Marshal.dump({:event => event, :params => params})) }
end

.queue_status(*queues) ⇒ Object



19
20
21
22
23
24
# File 'lib/action_event/message.rb', line 19

def self.queue_status(*queues)
  queues.flatten.inject({}) do |hash, queue_name|
    hash[queue_name] = with_queue(queue_name) { |queue| queue.status }
    hash
  end
end

.try_to_get_next_message(*queues) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/action_event/message.rb', line 10

def self.try_to_get_next_message(*queues)
  queues.flatten.each do |queue_name|
    if message = with_queue(queue_name) { |queue| m = queue.pop; m ? Marshal.load(m) : nil }
      return { :queue_name => queue_name, :event => message[:event], :params => message[:params] }
    end
  end
  return nil
end