Class: RemoteService::Connector::Nats

Inherits:
Object
  • Object
show all
Defined in:
lib/remote_service/connector/nats.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(brokers:) ⇒ Nats

Returns a new instance of Nats.



8
9
10
11
# File 'lib/remote_service/connector/nats.rb', line 8

def initialize(brokers:)
  @brokers = brokers
  @mutex = Mutex.new
end

Instance Attribute Details

#brokersObject (readonly)

Returns the value of attribute brokers.



6
7
8
# File 'lib/remote_service/connector/nats.rb', line 6

def brokers
  @brokers
end

Instance Method Details

#publish(to_queue, message) ⇒ Object



22
23
24
25
26
# File 'lib/remote_service/connector/nats.rb', line 22

def publish(to_queue, message)
  @mutex.synchronize do
    NATS.publish(to_queue, message)
  end
end

#request(to_queue, message, &block) ⇒ Object



28
29
30
31
32
# File 'lib/remote_service/connector/nats.rb', line 28

def request(to_queue, message, &block)
  @mutex.synchronize do
    NATS.request(to_queue, message, &block)
  end
end

#start(&block) ⇒ Object



13
14
15
16
# File 'lib/remote_service/connector/nats.rb', line 13

def start(&block)
  return connection_thread if !block_given?
  connect(&block)
end

#stopObject



18
19
20
# File 'lib/remote_service/connector/nats.rb', line 18

def stop
  NATS.stop
end

#subscribe(service_queue, &block) ⇒ Object



34
35
36
# File 'lib/remote_service/connector/nats.rb', line 34

def subscribe(service_queue, &block)
  NATS.subscribe(service_queue, queue: service_queue, &block)
end