Class: Freddy::RequestManager

Inherits:
Object
  • Object
show all
Defined in:
lib/freddy/request_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ RequestManager

Returns a new instance of RequestManager.



4
5
6
7
# File 'lib/freddy/request_manager.rb', line 4

def initialize(logger)
  @requests = Hamster.mutable_hash
  @logger = logger
end

Instance Method Details

#delete(correlation_id) ⇒ Object



29
30
31
# File 'lib/freddy/request_manager.rb', line 29

def delete(correlation_id)
  @requests.delete(correlation_id)
end

#no_route(correlation_id) ⇒ Object



18
19
20
21
22
23
# File 'lib/freddy/request_manager.rb', line 18

def no_route(correlation_id)
  if request = @requests[correlation_id]
    @requests.delete correlation_id
    request[:callback].call({error: 'Specified queue does not exist'}, nil)
  end
end

#startObject



9
10
11
12
13
14
15
16
# File 'lib/freddy/request_manager.rb', line 9

def start
  @timeout_thread = Thread.new do
    while true do
      clear_timeouts Time.now
      sleep 0.05
    end
  end
end

#store(correlation_id, opts) ⇒ Object



25
26
27
# File 'lib/freddy/request_manager.rb', line 25

def store(correlation_id, opts)
  @requests.store(correlation_id, opts)
end