class PikaQ::Publisher
Attributes
channel[R]
exchange[R]
exchange_name[R]
exchange_options[R]
exchange_type[R]
Public Class Methods
new(channel, exchange_name, exchange_type = :default, exchange_options = { durable: false, auto_delete: false })
click to toggle source
# File lib/pika_q/publisher.rb, line 9 def initialize(channel, exchange_name, exchange_type = :default, exchange_options = { durable: false, auto_delete: false }) @channel = channel @exchange_name = exchange_name @exchange_type = exchange_type @exchange_options = exchange_options @exchange = connect_to_exchange end
Public Instance Methods
close_channel()
click to toggle source
# File lib/pika_q/publisher.rb, line 24 def close_channel channel.close end
send_message(payload, message_options = {})
click to toggle source
# File lib/pika_q/publisher.rb, line 17 def send_message(payload, message_options = {}) message_options ||= {} message_options = default_message_options.merge(message_options) published = exchange.publish(payload, message_options) published end
Private Instance Methods
connect_to_exchange()
click to toggle source
# File lib/pika_q/publisher.rb, line 40 def connect_to_exchange if exchange_type == :default channel.default_exchange else ::Bunny::Exchange.new(channel, exchange_type, exchange_name, exchange_options) end end
default_message_options()
click to toggle source
# File lib/pika_q/publisher.rb, line 30 def default_message_options { content_type: 'application/json', message_id: SecureRandom.uuid, persistent: false, routing_key: nil, timestamp: DateTime.now.to_time.to_i } end