Skip to content

Instantly share code, notes, and snippets.

@treeder
Created March 21, 2012 23:19
Show Gist options
  • Save treeder/2154083 to your computer and use it in GitHub Desktop.
Save treeder/2154083 to your computer and use it in GitHub Desktop.
Example of queuing up 100 workloads per task
users = User.all
users_for_worker = []
users.each_with_index do |user, i|
# Queue up a task every 100
if i > 0 && i % 100 == 0
puts "#{i} Queueing worker..."
worker = NotificationWorker.new
worker.users = users_for_worker
# set other attributes that your worker needs to run
worker.queue
users_for_worker = []
end
users_for_worker << user
end
@jakeonrails
Copy link

User.find_in_batches(100) do |users_for_worker|
  puts 'Queuing worker'
  worker = NotificationWorker.new
  worker.users = users_for_worker
  worker.queue
end

@treeder
Copy link
Author

treeder commented May 15, 2012

Much nicer @jakeonrails . ;) Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment