Class: Pwwka::MessageQueuer

Inherits:
Object
  • Object
show all
Includes:
Handling
Defined in:
lib/pwwka/message_queuer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMessageQueuer

Returns a new instance of MessageQueuer.



27
28
29
# File 'lib/pwwka/message_queuer.rb', line 27

def initialize()
  @message_queue  = []
end

Instance Attribute Details

#message_queueObject (readonly)

Returns the value of attribute message_queue.



25
26
27
# File 'lib/pwwka/message_queuer.rb', line 25

def message_queue
  @message_queue
end

Instance Method Details

#clear_messagesObject



57
58
59
# File 'lib/pwwka/message_queuer.rb', line 57

def clear_messages
  @message_queue.clear
end

#queue_message(payload: nil, routing_key: nil, delayed: false, delay_by: nil) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/pwwka/message_queuer.rb', line 31

def queue_message(payload: nil, routing_key: nil, delayed: false, delay_by: nil)
  raise 'Missing payload' if payload.nil?
  raise 'Missing routing_key' if routing_key.nil?
  message_queue.push({
        payload: payload,
    routing_key: routing_key,
        delayed: delayed,
       delay_by: delay_by
  })
end

#send_messages!Object



50
51
52
53
54
55
# File 'lib/pwwka/message_queuer.rb', line 50

def send_messages!
  message_queue.each do |message|
    send_message!(*message_arguments(message))
  end
  clear_messages
end

#send_messages_safelyObject



42
43
44
45
46
47
48
# File 'lib/pwwka/message_queuer.rb', line 42

def send_messages_safely
  message_queue.each do |message|
    delay_hash  = {delayed: message[:delayed], delay_by: message[:delay_by]}.delete_if{|_,v|!v}
    send_message_safely(*message_arguments(message))
  end
  clear_messages
end