Class: Resque::Job

Inherits:
Object
  • Object
show all
Defined in:
lib/resque/plugins/job.rb

Class Method Summary collapse

Class Method Details

.origin_reserveObject



4
# File 'lib/resque/plugins/job.rb', line 4

alias_method :origin_reserve, :reserve

.reserve(queue) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/resque/plugins/job.rb', line 6

def reserve(queue)
  if queue =~ /^waiting_room/ && Resque.size(queue) > 0
    payload = Resque.pop(queue)
    if payload
      klass = Kernel.const_get(payload['class'])
      repushed_in_waiting_room = klass.repush(*payload['args'])

      return new(queue, payload) unless repushed_in_waiting_room
    end
    return nil
  else
    origin_reserve(queue)
  end
end