class SmartQue::Publisher
Public Class Methods
new()
click to toggle source
Initialize
# File lib/smart_que/publisher.rb, line 7 def initialize queue_list.each do |q_name| find_or_initialize_queue(q_name) end end
Public Instance Methods
broadcast(payload = {})
click to toggle source
broadcast message to queues based on topic subscription
# File lib/smart_que/publisher.rb, line 72 def broadcast(payload = {}) begin x_fanout.publish( payload.to_json ) log_message("broadcast status: success, Content : #{payload}") :success rescue => ex log_message("Broadcast error:#{ex.message}") :error end end
multicast(topic, payload = {})
click to toggle source
multicast message to queues based on topic subscription
# File lib/smart_que/publisher.rb, line 57 def multicast(topic, payload = {}) begin x_topic.publish( payload.to_json, routing_key: dot_formatted(topic) ) log_message("multicast status: success, Topic : #{topic}, Content : #{payload}") :success rescue => ex log_message("Multicast error:#{ex.message}") :error end end
publish(queue, payload = {})
click to toggle source
Publish message to the respective queue
# File lib/smart_que/publisher.rb, line 16 def publish(queue, payload = {}) # Check queue name includes in the configured list # Return if queue doesn't exist if queue_list.include? queue # Publish sms to queue begin x_direct.publish( payload.to_json, mandatory: true, routing_key: get_queue(queue).name ) log_message("Publish status: success, Queue : #{queue}, Content : #{payload}") :success rescue => ex log_message("Publish error:#{ex.message}") :error end else log_message("Publish status: failed, Queue(#{queue}) doesn't exist.") log_message("Content : #{payload}") raise QueueNotFoundError end end
unicast(q_name, payload = {})
click to toggle source
unicast message to queues
# File lib/smart_que/publisher.rb, line 41 def unicast(q_name, payload = {}) begin x_default.publish( payload.to_json, routing_key: dot_formatted(q_name) ) log_message("unicast status: success, Queue : #{q_name}, Content : #{payload}") :success rescue => ex log_message("Unicast error:#{ex.message}") :error end end