Sha256: 31cd9cd267f2fe21d4870cf36b38e4a54b203b3cbf7e5bcf0aa515f86558c3d3

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

# Encoding: utf-8

require 'reqless'
require 'reqless/worker/base'

module Reqless
  module Workers
    # A worker that keeps popping off jobs and processing them
    class SerialWorker < BaseWorker
      def initialize(reserver, options = {})
        super(reserver, options)
      end

      def run
        log(:info, "Starting #{reserver.description} in #{Process.pid}")
        procline "Starting #{reserver.description}"
        register_signal_handlers

        reserver.prep_for_work!

        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})")
          procline "Processing #{job.description}"
          listen_for_lost_lock(job) do
            perform(job)
          end
          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
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
reqless-0.0.5 lib/reqless/worker/serial.rb
reqless-0.0.4 lib/reqless/worker/serial.rb
reqless-0.0.3 lib/reqless/worker/serial.rb
reqless-0.0.2 lib/reqless/worker/serial.rb
reqless-0.0.1 lib/reqless/worker/serial.rb