Sha256: ee3361485fd5d8b7bb9357486486be84cb9b6d7ffacb93069857daa96aa1d45e

Contents?: true

Size: 1006 Bytes

Versions: 4

Compression:

Stored size: 1006 Bytes

Contents

require_relative "publishers/base"

module SmartQue
  class Publisher < Publishers::Base
    
    # Initialize
    def initialize
      queue_list.each do |q_name|
        q = get_queue(q_name)
        q.bind(x_direct, routing_key: q.name)
      end
    end

    # Instance methods

    # Publish message to the respective queue
    def publish(queue, options = {})
      # Check queue name includes in the configured list
      # Return if queue doesn't exist
      if queue_list.include? queue
        # Publish sms to queue
        x_direct.publish(
                          options.to_json,
                          mandatory: true,
                          routing_key: get_queue(queue).name
                        )
        log_message("Publish status: success, Queue : #{queue}, Content : #{options}")
      else
        log_message("Publish status: failed, Queue(#{queue}) doesn't exist.")
        log_message("Content : #{options}")
        raise QueueNotFoundError
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
smart-que-0.2.0 lib/smart_que/publisher.rb
smart-que-0.1.2 lib/smart_que/publisher.rb
smart-que-0.1.1 lib/smart_que/publisher.rb
smart-que-0.1.0 lib/smart_que/publisher.rb