module Resque::DynamicQueues

def reserve_with_round_robin

def reserve_with_round_robin
  qs = rotated_queues
  qs.each do |queue|
    log! "Checking #{queue}"
    if should_work_on_queue?(queue) && @job_in_progress = Resque::Job.reserve(queue)
      log! "Found job on #{queue}"
      return @job_in_progress
    end
    # Start the next search at the queue after the one from which we pick a job.
    @n += 1
  end
  nil
rescue Exception => e
  log "Error reserving job: #{e.inspect}"
  log e.backtrace.join("\n")
  raise e
end