Sha256: 2e52a943f2ccebdc28d23f7121d8fa26030472800d7f728702e4b05760a1ae83
Contents?: true
Size: 1016 Bytes
Versions: 1
Compression:
Stored size: 1016 Bytes
Contents
require 'logger' module Quebert class Worker attr_accessor :exception_handler, :logger, :backend def initialize yield self if block_given? end # Start the worker backend and intercept exceptions if a handler is provided def start logger.info "Worker pid##{Process.pid} started with #{backend.class.name} backend" while consumer = backend.reserve do begin log consumer.job, "performing with args #{consumer.job.args.inspect}" consumer.perform log consumer.job, "complete" rescue Exception => e log consumer.job, "fault #{e}", :error exception_handler ? exception_handler.call(e) : raise(e) end end end protected def log(job, message, level=:info) logger.send(level, "#{job.class.name}##{job.object_id}: #{message}") end def logger @logger ||= Quebert.logger end def backend @backend ||= Quebert.config.backend end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
quebert-0.0.1 | lib/quebert/worker.rb |