1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00
mperham--sidekiq/lib/sidekiq/worker.rb
2012-01-23 22:08:38 -08:00

28 lines
644 B
Ruby

require 'active_support/inflector'
module Sidekiq
class Worker
include Celluloid
def initialize(boss)
@boss = boss
end
def process(msg)
begin
klass = msg['class'].constantize
klass.new.perform(*msg['args'])
@boss.worker_done!(current_actor)
rescue => ex
send_to_airbrake(msg, ex) if defined?(::Airbrake)
raise ex
end
end
def send_to_airbrake(msg, ex)
::Airbrake.notify(:error_class => ex.class.name,
:error_message => "#{ex.class.name}: #{e.message}",
:parameters => json)
end
end
end