Class: LontaraUtilities::RMQ::Server::Subscriber

Inherits:
Object
  • Object
show all
Defined in:
lib/lontara_utilities/rmq/server/subscriber.rb

Overview

Server for AMQ on Direct Pattern

Instance Method Summary collapse

Constructor Details

#initialize(connection, queue:) ⇒ Subscriber

Returns a new instance of Subscriber.



8
9
10
11
# File 'lib/lontara_utilities/rmq/server/subscriber.rb', line 8

def initialize(connection, queue:)
  @channel = connection.channel
  @queue = channel.queue(queue, durable: true)
end

Instance Method Details

#startObject

Start consuming the queue and process the request.



14
15
16
17
18
19
20
21
22
# File 'lib/lontara_utilities/rmq/server/subscriber.rb', line 14

def start
  queue.subscribe(manual_ack: true) do |delivery_info, _, body|
    @request = JSON.parse(body, symbolize_names: true)

    channel.ack(delivery_info.delivery_tag)

    process_request
  end
end