class GrapeApe::Worker
Attributes
routing_key[R]
Public Instance Methods
error(response)
click to toggle source
# File lib/grape_ape/worker.rb, line 35 def error(response) [:error, response] end
handle_message(metadata, payload)
click to toggle source
# File lib/grape_ape/worker.rb, line 15 def handle_message(metadata, payload) payload = JSON.parse(payload).with_indifferent_access response = if respond_to?(payload[:method].to_sym) begin ok(send(payload[:method].to_sym, payload[:params])) rescue Exception => ex error({message: ex.message, backtrace: ex.backtrace}) end else error("Worker listening to routing_key: #{self.routing_key} does not have method: #{payload[:method]}") end Consumer::Application.amqp_channel.default_exchange.publish(response.to_json, routing_key: metadata.reply_to, correlation_id: metadata.correlation_id) end
ok(response)
click to toggle source
# File lib/grape_ape/worker.rb, line 31 def ok(response) [:ok, response] end