Sha256: 40fce2ee1a557cea8091ed82ad440fea4a26da4e0ba938d7387e5340bc36d469

Contents?: true

Size: 1.17 KB

Versions: 30

Compression:

Stored size: 1.17 KB

Contents

module Delayed
  class Worker
    SLEEP = 5

    cattr_accessor :logger
    self.logger = if defined?(Merb::Logger)
      Merb.logger
    elsif defined?(RAILS_DEFAULT_LOGGER)
      RAILS_DEFAULT_LOGGER
    end

    def initialize(options={})
      @quiet = options[:quiet]
      Delayed::Job.min_priority = options[:min_priority] if options.has_key?(:min_priority)
      Delayed::Job.max_priority = options[:max_priority] if options.has_key?(:max_priority)
    end

    def start
      say "*** Starting job worker #{Delayed::Job.worker_name}"

      trap('TERM') { say 'Exiting...'; $exit = true }
      trap('INT')  { say 'Exiting...'; $exit = true }

      loop do
        result = nil

        realtime = Benchmark.realtime do
          result = Delayed::Job.work_off
        end

        count = result.sum

        break if $exit

        if count.zero?
          sleep(SLEEP)
        else
          say "#{count} jobs processed at %.4f j/s, %d failed ..." % [count / realtime, result.last]
        end

        break if $exit
      end

    ensure
      Delayed::Job.clear_locks!
    end

    def say(text)
      puts text unless @quiet
      logger.info text if logger
    end

  end
end

Version data entries

30 entries across 30 versions & 19 rubygems

Version Path
betelgeuse-delayed_job-1.8.0 lib/delayed/worker.rb
blaxter-delayed_job-1.7.0 lib/delayed/worker.rb
collectiveidea-delayed_job-1.8.0 lib/delayed/worker.rb
collectiveidea-delayed_job-1.8.1 lib/delayed/worker.rb
collectiveidea-delayed_job-1.8.2 lib/delayed/worker.rb
dburkes-delayed_job-1.7.0 lib/delayed/worker.rb
factorylabs-delayed_job-1.8.1 lib/delayed/worker.rb
factorylabs-delayed_job-1.8.2 lib/delayed/worker.rb
factorylabs-delayed_job-1.8.3 lib/delayed/worker.rb
mypunchbowl-delayed_job-1.8.0 lib/delayed/worker.rb
mypunchbowl-delayed_job-1.8.1 lib/delayed/worker.rb
ssoroka-delayed_job-1.7.1 lib/delayed/worker.rb
texel-delayed_job-1.7.1 lib/delayed/worker.rb
webmat-delayed_job-1.7.1 lib/delayed/worker.rb
webmat-delayed_job-1.7.2 lib/delayed/worker.rb
zilkey-delayed_job-1.7.1 lib/delayed/worker.rb
blue_light_special-0.2.1 test/rails_root/vendor/gems/delayed_job-1.8.4/lib/delayed/worker.rb
andrewtimberlake-delayed_job-1.8.4.2 lib/delayed/worker.rb
delayed_job_on_steroids-1.7.1 lib/delayed/worker.rb
mathie-delayed_job-1.8.4 lib/delayed/worker.rb