class RemoteService::Service
Private Class Methods
start(brokers:nil, workers:nil, monitor_interval:nil)
click to toggle source
# File lib/remote_service/service.rb, line 28 def start(brokers:nil, workers:nil, monitor_interval:nil) queue = Queue.instance queue.connect(brokers) do queue.service(self.instance, workers, monitor_interval) end end
Public Instance Methods
handle(payload, reply_to)
click to toggle source
# File lib/remote_service/service.rb, line 7 def handle(payload, reply_to) result = method(payload['action'].to_sym).call(*prepare_params(payload['params'])) RemoteService.logger.debug "RESULT - ACTION:[#{payload['action']}] REPLY_TO:[#{reply_to}] PARAMS:[#{payload['params']}] RESULT:[#{result}]" respond_with_result(reply_to, result) end
Private Instance Methods
prepare_params(params)
click to toggle source
# File lib/remote_service/service.rb, line 19 def prepare_params(params) params.map { |param| param.is_a?(Hash) ? sym_keys(param) : param } end
respond_with_result(reply_to, result)
click to toggle source
# File lib/remote_service/service.rb, line 15 def respond_with_result(reply_to, result) Queue.instance.publish(reply_to, {result: result}) end
sym_keys(params)
click to toggle source
# File lib/remote_service/service.rb, line 23 def sym_keys(params) params.map { |k, v| [k.to_sym, v] }.to_h end