Class: LontaraUtilities::RMQ::Server::RPCConsumer

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

Overview

Server for AMQ on RPC Pattern,m

Instance Method Summary collapse

Constructor Details

#initialize(connection, queue:) ⇒ RPCConsumer

Returns a new instance of RPCConsumer.



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

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

Instance Method Details

#startObject

Start consuming the queue, process the request, and publish the response.



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

def start
  queue.subscribe do |_, properties, payload|
    @request = JSON.parse(payload, symbolize_names: true)

    publish_response(properties.reply_to, properties.correlation_id)
  end
end