1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-11-30 21:32:30 +00:00

callbacks for catching errors on the worker

هذا الالتزام موجود في:
Adam Cooke
2017-06-02 14:25:25 +01:00
الأصل 97f95fe831
التزام 9f4568e81a
2 ملفات معدلة مع 14 إضافات و3 حذوفات

عرض الملف

@@ -5,6 +5,7 @@ module Postal
def initialize(id, params = {})
@id = id
@params = params.with_indifferent_access
on_initialize
end
def id
@@ -15,6 +16,15 @@ module Postal
@params || {}
end
def on_initialize
# Called whenever the class is initialized. Can be overriden.
end
def on_error(exception)
# Called if there's an exception while processing the perform block.
# Receives the exception.
end
def perform
end

عرض الملف

@@ -54,13 +54,14 @@ module Postal
klass = message['class_name'].constantize.new(message['id'], message['params'])
klass.perform
rescue => e
if defined?(Raven)
Raven.capture_exception(e, :extra => {:job_id => message['id']})
end
klass.on_error(e) if defined?(klass)
logger.warn "[#{message['id']}] \e[31m#{e.class}: #{e.message}\e[0m"
e.backtrace.each do |line|
logger.warn "[#{message['id']}] " + line
end
if defined?(Raven)
Raven.capture_exception(e, :extra => {:job_id => message['id']})
end
ensure
logger.info "[#{message['id']}] Finished processing \e[34m#{message['class_name']}\e[0m job in #{Time.now - start_time}s"
end