Class: HornetQ::Client::RequestorPattern

Inherits:
Object
  • Object
show all
Defined in:
lib/hornetq/client/requestor_pattern.rb

Overview

Implements the Requestor Pattern

Send a request to a server and wait for a reply

Instance Method Summary collapse

Constructor Details

#initialize(session, request_address) ⇒ RequestorPattern

Returns a new instance of RequestorPattern.



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/hornetq/client/requestor_pattern.rb', line 6

def initialize(session, request_address)
  @session = session
  @producer = session.create_producer(request_address)
  reply_queue = "#{request_address}.#{Java::java.util::UUID.randomUUID.toString}"
  begin
    session.create_temporary_queue(reply_queue, reply_queue)
  rescue NativeException => exc
    p exc
  end
  @consumer = session.create_consumer(reply_queue)
end

Instance Method Details

#closeObject



24
25
26
27
28
# File 'lib/hornetq/client/requestor_pattern.rb', line 24

def close
  @producer.close if @producer
  @consumer.close if @consumer
  @session.delete_queue(@consumer.queue_name)
end

#request(request_message, timeout) ⇒ Object



18
19
20
21
22
# File 'lib/hornetq/client/requestor_pattern.rb', line 18

def request(request_message, timeout)
  request_message.putStringProperty(Java::OrgHornetqCoreClientImpl::ClientMessageImpl::REPLYTO_HEADER_NAME, @consumer.queue_name);
  @producer.send(request_message)
  @consumer.receive(timeout)
end