Method: Resque::Scheduler::DelayingExtensions#enqueue_delayed_selection

Defined in:
lib/resque/scheduler/delaying_extensions.rb

#enqueue_delayed_selection(klass = nil) ⇒ Object

Given a block, enqueue jobs now that return true from a block

This allows for enqueuing of delayed jobs that have arguments matching certain criteria



171
172
173
174
175
176
177
178
179
180
# File 'lib/resque/scheduler/delaying_extensions.rb', line 171

def enqueue_delayed_selection(klass = nil)
  fail ArgumentError, 'Please supply a block' unless block_given?

  found_jobs = find_delayed_selection(klass) { |args| yield(args) }
  found_jobs.reduce(0) do |sum, encoded_job|
    decoded_job = decode(encoded_job)
    klass = Util.constantize(decoded_job['class'])
    sum + enqueue_delayed(klass, *decoded_job['args'])
  end
end