Sha256: aa6115f153de34284d2216c8e9ad96e1e1b032b8fa7b860a0bc3fe2807e28874

Contents?: true

Size: 803 Bytes

Versions: 1

Compression:

Stored size: 803 Bytes

Contents

module Resque
  class Runner < Worker
    def work(interval = 5, &block)
      $0 = "resque: Starting - #{Process.pid}"
      startup

      if not @paused and job = reserve
        log "got: #{job.inspect}"
        run_hook :before_fork
        working_on job

        procline "Processing #{job.queue} since #{Time.now.to_i} - #{Process.pid}"
        perform(job, &block)
        exit! unless @cant_fork

        done_working
        @child = nil
      else
        break if interval.to_i == 0
        log! "Sleeping for #{interval.to_i} - #{Process.pid}"
        procline @paused ? "Paused" : "Waiting for #{@queues.join(',')}"
        sleep interval.to_i
      end

    ensure
      unregister_worker
    end
    
    def empty?
      queues.any?{|queue| Resque.size(queue).zero? }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
resque-ranger-0.1.2 lib/resque/runner.rb