0.0
No release in over a year
This will stagger your resque jobs over a configurable duration rather then enqueueing them all together
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.0
~> 10.0
~> 3.0

Runtime

 Project Readme

Resque-Stagger

resque-stagger is a simple Ruby gem that allows you to stagger the enqueuing of jobs in Resque.

Installation

Add this line to your application's Gemfile:

gem 'resque-stagger', require: 'resque/staggered'

And then execute:

bundle install

Or install it yourself as:

gem install resque-stagger

Usage

require 'resque/staggered'

# Set up a new staggered queue
queue = Resque::Staggered.new(
  start_from: Time.now + 60, # Start queuing jobs 60 seconds from now
  number_of_jobs: 10, # Enqueue 10 jobs per time interval
  unit_time_in_seconds: 300, # Interval of 5 minutes between each set of jobs
  queue: 'low' # Enqueue jobs in the 'low' queue
)

# Enqueue a job with arguments
queue.enqueue(MyJobClass, arg1, arg2, arg3)
  • The code sets up a new staggered queue using Resque::Staggered and then enqueues a job with arguments using the enqueue method of the staggered queue.

  • Based on the options passed to the Resque::Staggered constructor, the staggered queue will enqueue 10 jobs every 5 minutes (300 seconds) starting 60 seconds from the current time, and enqueue the jobs in the "low" queue.

  • So, if this code is run at 12:00 PM, the first set of 10 jobs will be enqueued at 12:01 PM (60 seconds later), the second set of 10 jobs will be enqueued at 12:06 PM (5 minutes later), the third set of 10 jobs will be enqueued at 12: 11 PM (5 minutes later), and so on.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/parikshit223933/resque-stagger.

License

The gem is available as open source under the terms of the MIT License.