Class: TxghQueue::Backends::Sqs::Producer

Inherits:
Object
  • Object
show all
Defined in:
lib/txgh-queue/backends/sqs/producer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queues, logger) ⇒ Producer

Returns a new instance of Producer.



9
10
11
12
# File 'lib/txgh-queue/backends/sqs/producer.rb', line 9

def initialize(queues, logger)
  @queues = queues
  @logger = logger
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



7
8
9
# File 'lib/txgh-queue/backends/sqs/producer.rb', line 7

def logger
  @logger
end

#queuesObject (readonly)

Returns the value of attribute queues.



7
8
9
# File 'lib/txgh-queue/backends/sqs/producer.rb', line 7

def queues
  @queues
end

Instance Method Details

#enqueue(payload, options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/txgh-queue/backends/sqs/producer.rb', line 14

def enqueue(payload, options = {})
  payload_json = payload.to_json

  message_ids = queues.map do |queue|
    new_message = queue.send_message(payload_json, options)

    logger.info(
      "Enqueued new message with id #{new_message.message_id} and params "\
        "#{payload_json}"
    )

    new_message.message_id
  end

  { message_ids: message_ids }
end