class Qless::Workers::SerialWorker

A worker that keeps popping off jobs and processing them

Public Class Methods

new(reserver, options = {}) click to toggle source
Calls superclass method Qless::Workers::BaseWorker::new
# File lib/qless/worker/serial.rb, line 11
def initialize(reserver, options = {})
  super(reserver, options)
end

Public Instance Methods

run() click to toggle source
# File lib/qless/worker/serial.rb, line 15
def run
  log(:info, "Starting #{reserver.description} in #{Process.pid}")
  procline "Starting #{reserver.description}"
  register_signal_handlers

  reserver.prep_for_work!

  listen_for_lost_lock do
    procline "Running #{reserver.description}"

    jobs.each do |job|
      # Run the job we're working on
      log(:debug, "Starting job #{job.klass_name} (#{job.jid} from #{job.queue_name})")
      perform(job)
      log(:debug, "Finished job #{job.klass_name} (#{job.jid} from #{job.queue_name})")

      # So long as we're paused, we should wait
      while paused
        log(:debug, 'Paused...')
        sleep interval
      end
    end
  end
end