class BackgroundWorker::Config
Attributes
backgrounded[R]
enqueue_with[R]
logger[R]
Public Class Methods
new(attrs)
click to toggle source
Configuration includes following options:
logger: what logger to user throughout enqueue_with: callback to execute the process after_exception: callback to handle exceptions (for example, error reporting service)
eg: Config.new
(
logger: Rails.logger, enqueue_with: -> klass, method_name, opts { Resque.enqueue(klass, method_name, opts) }, after_exception: -> e { Airbrake.notify(e) }
)
# File lib/background_worker/config.rb, line 18 def initialize(attrs) @logger = attrs.fetch(:logger, ::Logger.new(STDOUT)) @enqueue_with = attrs.fetch(:enqueue_with, method(:foreground_enqueue)) @after_exception = attrs.fetch(:after_exception, method(:default_after_exception)) @backgrounded = attrs.fetch(:backgrounded, true) end
Public Instance Methods
after_exception(e)
click to toggle source
Callback fired when an exception occurs
# File lib/background_worker/config.rb, line 26 def after_exception(e) @after_exception.call(e) end
default_after_exception(e)
click to toggle source
# File lib/background_worker/config.rb, line 34 def default_after_exception(e) logger.error '** No after_exception handler installed **' logger.error "Exception: #{e}" logger.error "#{e.backtrace.join("\n")}" end
foreground_enqueue(klass, opts)
click to toggle source
# File lib/background_worker/config.rb, line 30 def foreground_enqueue(klass, opts) klass.perform_now(opts) end