class Asynk::Publisher

Public Class Methods

generate_message_id(legnth = 8) click to toggle source
# File lib/asynk/publisher.rb, line 23
def generate_message_id(legnth = 8)
  SecureRandom.hex(legnth)
end
publish(routing_key, params = {}) click to toggle source
# File lib/asynk/publisher.rb, line 6
def publish(routing_key, params = {})
  global_start_time = Asynk::Benchmark.start if Asynk.config[:publisher_execution_time]
  message_id = params.delete(:message_id) || generate_message_id

  Asynk.broker.pool.with do |channel, exchange, reply_queue|
    exchange.publish(params.to_json, message_id: message_id, routing_key: routing_key)
  end

  if Asynk.config[:publisher_execution_time]
    Asynk.logger.info "Sending async message #{routing_key}:#{message_id} with params: #{params}. Completed In: #{Asynk::Benchmark.end(global_start_time)} ms."
  end
end
sync_publish(routing_key, params = {}) click to toggle source
# File lib/asynk/publisher.rb, line 19
def sync_publish(routing_key, params = {})
  Asynk::SyncPublisher.new(routing_key, params).send
end