class Message::Filters::ErrorHandling

Attributes

callback[RW]

Public Instance Methods

call(filter, job, action) click to toggle source
# File lib/message/filters/error_handling.rb, line 6
def call(filter, job, action)
  lambda do |msg|
    begin
      filter.call(msg)
    rescue => e
      job_name = job.name rescue 'unknown job(find job name failed)'
      Message.log(:error) {"#{action} #{job_name} message failed, #{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"}
      if self.callback
        self.callback.call(e, msg, job, action)
      end
    end
  end
end