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