istox-resque-scheduler 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS.md +87 -0
  3. data/CHANGELOG.md +478 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/CONTRIBUTING.md +6 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE +23 -0
  8. data/README.md +698 -0
  9. data/Rakefile +21 -0
  10. data/exe/resque-scheduler +5 -0
  11. data/istox-resque-scheduler.gemspec +61 -0
  12. data/lib/resque-scheduler.rb +4 -0
  13. data/lib/resque/scheduler.rb +460 -0
  14. data/lib/resque/scheduler/cli.rb +147 -0
  15. data/lib/resque/scheduler/configuration.rb +73 -0
  16. data/lib/resque/scheduler/delaying_extensions.rb +356 -0
  17. data/lib/resque/scheduler/env.rb +89 -0
  18. data/lib/resque/scheduler/extension.rb +13 -0
  19. data/lib/resque/scheduler/failure_handler.rb +11 -0
  20. data/lib/resque/scheduler/lock.rb +4 -0
  21. data/lib/resque/scheduler/lock/base.rb +61 -0
  22. data/lib/resque/scheduler/lock/basic.rb +27 -0
  23. data/lib/resque/scheduler/lock/resilient.rb +78 -0
  24. data/lib/resque/scheduler/locking.rb +104 -0
  25. data/lib/resque/scheduler/logger_builder.rb +72 -0
  26. data/lib/resque/scheduler/plugin.rb +31 -0
  27. data/lib/resque/scheduler/scheduling_extensions.rb +142 -0
  28. data/lib/resque/scheduler/server.rb +268 -0
  29. data/lib/resque/scheduler/server/views/delayed.erb +63 -0
  30. data/lib/resque/scheduler/server/views/delayed_schedules.erb +20 -0
  31. data/lib/resque/scheduler/server/views/delayed_timestamp.erb +26 -0
  32. data/lib/resque/scheduler/server/views/requeue-params.erb +23 -0
  33. data/lib/resque/scheduler/server/views/scheduler.erb +58 -0
  34. data/lib/resque/scheduler/server/views/search.erb +72 -0
  35. data/lib/resque/scheduler/server/views/search_form.erb +8 -0
  36. data/lib/resque/scheduler/signal_handling.rb +40 -0
  37. data/lib/resque/scheduler/tasks.rb +25 -0
  38. data/lib/resque/scheduler/util.rb +39 -0
  39. data/lib/resque/scheduler/version.rb +7 -0
  40. metadata +343 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 11bc3a299bfc8778cf9370863506fe19a3ee419d2519b28a0be09257a115dd9d
4
+ data.tar.gz: 0761a1d7677fbc7d10914a5733ccdcdb38dc64602a50fa192b3ccf8bdfac2de2
5
+ SHA512:
6
+ metadata.gz: eb53946bf4defe659875a117a18f495a4f49b04284f311c8f4217119a3e4f14880e56fb949a098c2ea38dc89972fd92d67af489c68209b8d72c4d6edf654ae98
7
+ data.tar.gz: 3ed77630118d6d71dc8bdb891eff078e9a9ad2fbb08bbf97f6df0c46b9c1fdeec9aa5c0262176f063e2a62eb636e8589389fb42c4c288c3c60285e51c2fba0f6
@@ -0,0 +1,87 @@
1
+ Resque Scheduler authors
2
+ ========================
3
+
4
+ - Aaron Suggs
5
+ - Alexander Simonov
6
+ - Andrea Campolonghi
7
+ - Ben VandenBos
8
+ - Bernerd Schaefer
9
+ - Bogdan Gusiev
10
+ - Brian Landau
11
+ - Brian P O'Rourke
12
+ - Carlos Antonio da Silva
13
+ - Chris Kampmeier
14
+ - DJ Hartman
15
+ - Damon P. Cortesi
16
+ - Dan Buch
17
+ - Dave Grijalva
18
+ - David Backeus
19
+ - David Balatero
20
+ - David Doan
21
+ - David Yang
22
+ - Denis Yagofarov
23
+ - dtaniwaki
24
+ - Evan Tahler
25
+ - Eugene Batogov
26
+ - Giovanni Cappellotto
27
+ - Harry Lascelles
28
+ - Henrik Nyh
29
+ - Hormoz Kheradmand
30
+ - Ian Davies
31
+ - James Le Cuirot
32
+ - Jarkko Mönkkönen
33
+ - Jimmy Chao
34
+ - John Crepezzi
35
+ - John Griffin
36
+ - Jon Larkowski and Les Hill
37
+ - Jonathan Conley
38
+ - Jonathan Hyman
39
+ - Jonathan Owens
40
+ - Jordan Gardner
41
+ - Joshua Szmajda
42
+ - Justin Weiss
43
+ - Les Hill
44
+ - Luke Rodgers
45
+ - Manuel Meurer
46
+ - Matt Aimonetti
47
+ - Matt Simpson
48
+ - Matteo Centenaro
49
+ - Michael Lovitt
50
+ - Michael Nikitochkin
51
+ - Michael Rykov
52
+ - Mike MacDonald
53
+ - Nickolas Means
54
+ - Olek Janiszewski
55
+ - Olivier Brisse
56
+ - Petteri Räty
57
+ - Phil Cohen
58
+ - Rob Olson
59
+ - Russell Branca
60
+ - Ryan Biesemeyer
61
+ - Ryan Carver
62
+ - Sameer Siruguri
63
+ - Scott Francis
64
+ - Sean Stephens
65
+ - Sebastian Kippe
66
+ - Sharang Dashputre
67
+ - Spring MC
68
+ - tbprojects
69
+ - Tim Liner
70
+ - Tony Lewis
71
+ - Tom Crayford
72
+ - Tsu-Shiuan Lin
73
+ - Vincent Zhu
74
+ - Vladislav Shub
75
+ - V Sreekanth
76
+ - Warren Sangster
77
+ - Yuri Kasperovich
78
+ - andreas
79
+ - bbauer
80
+ - camol
81
+ - d4rk5eed
82
+ - fallwith
83
+ - gravis
84
+ - hpoydar
85
+ - malomalo
86
+ - sawanoboly
87
+ - serek
@@ -0,0 +1,478 @@
1
+ # Change Log
2
+
3
+ **ATTN**: This project uses [semantic versioning](http://semver.org/).
4
+
5
+ ## [5.0.0] - Unreleased
6
+
7
+ ## [4.4.0] - 2019-04-11
8
+ ### Added
9
+ - Support Resque 2
10
+ - Support redis-rb 4
11
+ - Support Ruby 2.5
12
+
13
+ ### Fixed
14
+ - Redis timeouts no longer crash the scheduler process
15
+ - Fix race condition when running multiple schedulers
16
+ - Fix setting the `poll_sleep_amount` option
17
+ - Escape class names in resque-web /delayed URLs
18
+
19
+ ## Changed
20
+ - Addressed redis-namespace deprecation warnings
21
+ - Ensure `enqueue_in` args are Numeric, catching a common issue passing `ActiveSupport::Duration`
22
+
23
+ ## [4.3.1] - 2017-11-20
24
+ ### Changed
25
+ - Add support and testing for ruby 2.4
26
+ - Change log format and file name
27
+ - Drop testing on ruby 1.9.3
28
+ - `Lock::Resilient`: Refresh lua script sha if it does not exist in redis server
29
+
30
+ ### Fixed
31
+ - Reporting version via `resque-scheduler --version`
32
+ - Class name escaping in `/delayed` view
33
+
34
+ ## [4.3.0] - 2016-06-26
35
+ ### Added
36
+ - Windows testing on Appveyor
37
+ - Code of Conduct
38
+
39
+ ### Changed
40
+ - Silence output by default when daemonizing
41
+ - Update vagrant setup
42
+ - Update gem metadata per latest Bundler defaults
43
+
44
+ ## [4.2.1] - 2016-06-08
45
+ ### Added
46
+ - Docs improvements
47
+
48
+ ### Changed
49
+ - Optimization of `find_delayed_selection`
50
+ - More defensive code around redis disconnects
51
+ - Only trap existing signals on given platform
52
+ - RuboCop auto-fixes
53
+ - Dependency updates
54
+
55
+ ## [4.2.0] - 2016-04-29
56
+ ### Added
57
+ - Index column to scheduler tab
58
+ - Failure hook support for better extensibility
59
+
60
+ ### Changed
61
+ - Clean up and simplify the scheduling extension
62
+ - Make `Resque::Scheduler.logger` accessible to user
63
+ - Default failure handler now outputs stacktrace
64
+ - Update rufus-scheduler
65
+
66
+ ### Fixed
67
+ - Displaying schedules appropriate to the `env` in scheduler UI
68
+ - A race condition in concurrent restarts
69
+
70
+ ## [4.1.0] - 2016-02-10
71
+ ### Added
72
+ - View helper to cut down on repetition
73
+ - `Resque.(find|enqueue)_delayed_selection` methods to complement
74
+ `Resque.remove_delayed_selection`
75
+
76
+ ### Changed
77
+ - Leave undefined env vars unset in internal options hash
78
+ - Insulate checking `Rails.env`
79
+ - Documentation updates and typo fixes
80
+
81
+ ### Fixed
82
+ - Check thread life only if present
83
+
84
+ ## [4.0.0] - 2014-12-21
85
+ ### Added
86
+ - Show current master in the web UI
87
+
88
+ ### Changed
89
+ - Bump rufus-scheduler dependency to `~> 3.0`
90
+ - Address warning from redis-namespace related to `#unwatch`
91
+ - Documentation updates
92
+
93
+ ### Fixed
94
+ - Bugfix related to schedule check when no jobs are in the queue
95
+
96
+ ## [3.1.0] - 2014-12-21
97
+ ### Added
98
+ - Note in README.md about production redis deployment configuration
99
+ - Better PID file cleanup
100
+ - Option to filter by job class in `Resque.remove_delayed_selection`
101
+ - Tell-don't-ask with `Resque.schedule` to enable atomic clear & set
102
+
103
+ ### Changed
104
+ - Avoid use of redis `KEYS` command in `Resque.remove_delayed_selection`
105
+
106
+ ### Fixed
107
+ - Only release master lock if it belongs to us
108
+ - Only override configuration options if provided
109
+
110
+ ## [3.0.0] - 2014-05-27
111
+ ### Added
112
+ - Vagrant setup
113
+ - Support for last execution information through the web
114
+ - CodeClimate integration
115
+ - `Resque.delayed?` and `Resque.next_delayed_schedule`
116
+ - Allow scheduled jobs to be deleted via resque web
117
+
118
+ ### Changed
119
+ - The grand re-namespacing of `resque_scheduler/(.*)` =>
120
+ `resque/scheduler/\1`
121
+ - "Refactoring"
122
+ - Cleanup of a ton of rubocop offenses
123
+ - Documentation updates
124
+ - Handling signals while "sleeping" by relying on `Thread#wakeup`
125
+ - Testing against same rubies as resque (+ 2.1.1)
126
+ - Renamed `Resque.set_last_run` to `Resque.last_enqueued_at`
127
+
128
+ ### Fixed
129
+ - Duplicated layout for `search_form` partial template.
130
+ - Issue where Web UI was ONLY showing jobs that only run in the current
131
+ environment
132
+
133
+ ## [2.5.5] - 2014-02-27
134
+ ### Changed
135
+ - Only showing link to job with args if job is present
136
+ - Only showing scheduled jobs that match current env or omit env
137
+ - Ensuring lock and acquire lua scripts are refreshed on timeout change
138
+ - Switch to using `mono_logger` instead of stdlib `logger`
139
+
140
+ ## [2.5.4] - 2014-02-17
141
+ ### Changed
142
+ - Documentation updates
143
+
144
+ ## [2.5.3] - 2014-02-12
145
+ ### Fixed
146
+ - Handling signals during poll sleep
147
+
148
+ ## [2.5.2] - 2014-02-11
149
+ ### Changed
150
+ - Pinning down dependency versions more tightly
151
+
152
+ ## [2.5.1] - 2014-02-09
153
+ ### Fixed
154
+ - Make signal handling (really) Ruby 2 compatible
155
+
156
+ ## [2.5.0] - 2014-02-09
157
+ ### Added
158
+ - Search feature to the Delayed tab in Resque Web
159
+
160
+ ### Changed
161
+ - Use `logger.error` when logging errors from `handle_errors`
162
+
163
+ ### Fixed
164
+ - Confusion with redis version requirements in `README.md`
165
+
166
+ ## [2.4.0] - 2014-01-14
167
+ ### Added
168
+ - Including optional env and app names in procline
169
+ - A standalone `resque-scheduler` executable
170
+ - Support for persistence of dynamic schedules
171
+ - `.configure` convenience method for block-style configuration
172
+ - `.remove_delayed_selection` method to remove based on result of a block
173
+ - Support for viewing all schedules for a job in web UI
174
+
175
+ ### Changed
176
+ - Bumping the copyright year
177
+ - Corrected doc for syntax of class and every keys
178
+ - Use resque redis namespace in the master lock key
179
+ - Various test improvements, :bug: fixes, and documentation updates!
180
+
181
+ ### Removed
182
+ - **POSSIBLE BREAKING CHANGE**: Dropping support for ree
183
+
184
+ ### Fixed
185
+ - An explosion regarding `every` in the views
186
+ - Unsafe shutdown in Ruby 2
187
+
188
+ ## 2.3.1 (2013-11-20)
189
+ ### Fixed
190
+ - `require_paths` in gemspec
191
+
192
+ ## 2.3.0 (2013-11-07)
193
+ ### Added
194
+ - Add rufus scheduler `every` notice to README
195
+ - Specify MIT license in gemspec
196
+
197
+ ### Changed
198
+ - **BREAKING CHANGE**: Added `RESQUE_SCHEDULER_INTERVAL` in place of `INTERVAL`
199
+ - Use `Float()` instead of `Integer()` to calculate poll sleep amount
200
+ - Upgraded dependence of Resque to support 1.25
201
+ - Use `Resque.validate` instead of custom `.validate_job!`
202
+
203
+ ### Fixed
204
+ - Re-introduced `ThreadError` on Ruby 2
205
+
206
+ ## 2.2.0 (2013-10-13)
207
+ ### Added
208
+ - Support for parameterized resque jobs.
209
+ - Allowing prefix for `master_lock_key`.
210
+ - `Resque.clean_schedules` method, which is useful when setting up the scheduler
211
+ for the first time.
212
+
213
+ ### Changed
214
+ - Locking rufus-scheduler dependency to `~> 2.0`
215
+ - Updated redis dependency to `>= 3.0.0`
216
+
217
+ ### Fixed
218
+ - Bug fixes related to first time schedule retrieval and missing schedules.
219
+
220
+ ## 2.1.0 (2013-09-20)
221
+ ### Added
222
+ - Add `#scheduled_at` which returns an array of timestamps at which the
223
+ specified job is scheduled
224
+ - Add `#enqueue_delayed` for enqueueing specific delayed jobs immediately
225
+ - Show server local time in resque-web
226
+ - Add support for configuring `Resque::Scheduler.poll_sleep_amount` via the
227
+ `INTERVAL` environmental variable.
228
+
229
+ ### Changed
230
+ - Locking to resque < 1.25.0 (for now)
231
+ - Syncing stdout/stderr
232
+ - Using a logger instead of `#puts`, configurable via `LOGFILE`, `VERBOSE`, and
233
+ `MUTE` environmental variables, as well as being settable via
234
+ `Resque::Scheduler#logger`
235
+ - Enqueue immediately if job is being enqueued in the past
236
+
237
+ ### Removed
238
+ - Dependency on `Resque::Helpers`
239
+
240
+ ### Fixed
241
+ - Ensuring `Resque.schedule=` sets rather than appends
242
+ - Process daemonization fixes including stdio redirection and redis client
243
+ reconnection
244
+ - Scheduler template when arrays are passed to rufus-scheduler
245
+ - Fixed shutdown in ruby 2.0.0
246
+
247
+ ## [2.0.1] - 2013-03-20
248
+ ### Added
249
+ - Locking to support master failover
250
+ - Allow custom job classes to be used in `Resque.enqueue_at`
251
+ - Allowing `#enqueue_at` to call `#scheduled` when `Resque.inline` is `true`
252
+
253
+ ### Changed
254
+ - More efficient `#remove_delayed` implementation
255
+
256
+ ## [2.0.0] - 2012-05-04
257
+ ### Added
258
+ - Support for Resque.inline configuration (carlosantoniodasilva)
259
+
260
+ ### Fixed
261
+ - Possible job loss race condition around deleting delayed queues and enqueuing
262
+ a job 0 seconds in the future.
263
+
264
+ ## [2.0.0.h] - 2012-03-19
265
+ ### Added
266
+ - Plugin support with hooks (andreas)
267
+
268
+ ## [2.0.0.f] - 2011-11-03
269
+ ### Added
270
+ - Support `ENV['BACKGROUND']` flag for daemonizing (bernerdschaefer)
271
+ - Added support for `before_schedule` and `after_schedule` hooks (yaauie)
272
+ - Added `remove_delayed_job_from_timestamp` to remove delayed jobs from
273
+ a given timestamp.
274
+
275
+ ### Fixed
276
+ - Address race condition with delayed jobs (using redis transactions)
277
+
278
+ ## [2.0.0.e] - 2011-09-16
279
+ ### Added
280
+ - `enqueue_at_with_queue`/`enqueue_in_with_queue` support (niralisse)
281
+ - `Resque::Scheduler.poll_sleep_amount` to allow for configuring
282
+ the sleep time b/w delayed queue polls.
283
+ - "Clear Delayed Jobs" button to the Delayed Jobs page (john-griffin)
284
+
285
+ ### Fixed
286
+ - Pagination issue on the Delayed tab
287
+
288
+ ## [2.0.0.d] - 2011-04-04
289
+ ### Changed
290
+ - Porting bug fixes from v1.9-stable
291
+
292
+ ## [2.0.0.c] - 2011-03-25
293
+ ### Changed
294
+ - Rake task drop a pid file (sreeix)
295
+
296
+ ## [2.0.0.b] - 2011-02-25
297
+ ### Fixed
298
+ - Bugs
299
+
300
+ ## 2.0.0.a - 2010-12-10
301
+ ### Added
302
+ - Dynamic schedule support (brianjlandau, davidyang)
303
+
304
+ ### Changed
305
+ - Now depends on redis >=1.3
306
+
307
+ ## [1.9.11] - 2013-11-20
308
+ ### Fixed
309
+ - Behavior of `#validate_job!` via `#enqueue_at_with_queue` #286
310
+ - `require_paths` in gemspec #288
311
+
312
+ ## [1.9.10] - 2013-09-19
313
+ ### Added
314
+ - Backported `#enqueue_at_with_queue`
315
+ - Locking to resque < 1.25.0
316
+ - Ruby 1.8 compatibility in scheduler tab when schedule keys are symbols
317
+
318
+ ### Changed
319
+ - Mocha setup compatibility
320
+
321
+ ## [1.9.9] - 2011-03-29
322
+ ### Added
323
+ - Compatibility with resque 1.15.0
324
+
325
+ ## [1.9.8] - 2011-01-14
326
+ ### Changed
327
+ - Validates delayed jobs prior to insertion into the delayed queue (bogdan)
328
+ - Rescue exceptions that occur during queuing and log them (dgrijalva)
329
+
330
+ ## [1.9.7] - 2010-11-09
331
+ ### Added
332
+ - Support for rufus-scheduler "every" syntax (fallwith)
333
+ - Ability to pass a Time to `handle_delayed_items` for testing/staging (rcarver)
334
+
335
+ ## [1.9.6] - 2010-10-08
336
+ ### Added
337
+ - Support for custom job classes (like resque-status) (mattetti)
338
+
339
+ ## [1.9.5] - 2010-09-09
340
+ ### Changed
341
+ - Updated scheduler rake task to allow for an alternate setup task
342
+ to avoid loading the entire stack. (chewbranca)
343
+
344
+ ### Fixed
345
+ - Sig issue on win32 (#25)
346
+
347
+ ## [1.9.4] - 2010-07-29
348
+ ### Added
349
+ - Ability to remove jobs from delayed queue (joshsz)
350
+
351
+ ### Fixed
352
+ - Issue #23 (removing .present? reference)
353
+
354
+ ## [1.9.3] - 2010-07-07
355
+ ### Fixed
356
+ - Bug fix (#19)
357
+
358
+ ## [1.9.2] - 2010-06-16
359
+ ### Fixed
360
+ - Issue with redis gem 2.0.1 and redis server 1.2.6 (dbackeus)
361
+
362
+ ## [1.9.1] - 2010-06-04
363
+ ### Fixed
364
+ - Issue with redis server 1.2.6 and redis gem 2.0.1
365
+
366
+ ## [1.9.0] - 2010-06-04
367
+ ### Added
368
+ - Redis 2.0 support (bpo)
369
+
370
+ ## [1.8.2] - 2010-06-04
371
+ ### Added
372
+ - Queue now functionality to delayed timestamps (daviddoan)
373
+
374
+ ## [1.8.1] - 2010-05-19
375
+ ### Added
376
+ - `rails_env` for scheduled jobs to support scoping jobs by
377
+ `RAILS_ENV` (gravis).
378
+ - Adding gemspec for bundler support.
379
+
380
+ ### Fixed
381
+ - Ruby 1.8.6 compatibility issue.
382
+
383
+ ## [1.8.0] - 2010-04-14
384
+ ### Added
385
+ - Tests for resque-web (gravis)
386
+
387
+ ### Changed
388
+ - Moving version to match corresponding resque version
389
+ - Sorting schedule on Scheduler tab
390
+
391
+ ## [1.0.5] - 2010-03-01
392
+ ### Fixed
393
+ - Support for overriding queue from schedule config.
394
+
395
+ ### Changed
396
+ - The queue is now stored with the job and arguments in the delayed queue so
397
+ there is no longer a need for the scheduler to load job classes to introspect
398
+ the queue.
399
+
400
+ ### Removed
401
+ - resque-web dependency on loading the job classes for "Queue Now", provided
402
+ "queue" is specified in the schedule.
403
+
404
+ ## [1.0.4] - 2010-02-26
405
+ ### Added
406
+ - Support for specifying the queue to put the job onto. This allows for you to
407
+ have one job that can go onto multiple queues and be able to schedule jobs
408
+ without having to load the job classes.
409
+
410
+ ## [1.0.3] - 2010-02-11
411
+ ### Added
412
+ - Support for scheduled jobs with empty crons. This is helpful to have jobs that
413
+ you don't want on a schedule, but do want to be able to queue by clicking a
414
+ button.
415
+
416
+ ## [1.0.2] - 2010-02-10
417
+ ### Changed
418
+ - Delayed Job tab to display job details if only 1 job exists for a given
419
+ timestamp
420
+
421
+ ## [1.0.1] - 2010-02-01
422
+ ### Fixed
423
+ - Delayed jobs close together resulted in a 5 second sleep
424
+
425
+ ## [1.0.0] - 2009-12-21
426
+ ### Added
427
+ - Initial release
428
+
429
+ [Unreleased]: https://github.com/resque/resque-scheduler/compare/v4.4.0...HEAD
430
+ [4.4.0]: https://github.com/resque/resque-scheduler/compare/v4.3.1...v4.4.0
431
+ [4.3.1]: https://github.com/resque/resque-scheduler/compare/v4.3.0...v4.3.1
432
+ [4.3.0]: https://github.com/resque/resque-scheduler/compare/v4.2.1...v4.3.0
433
+ [4.2.1]: https://github.com/resque/resque-scheduler/compare/v4.2.0...v4.2.1
434
+ [4.2.0]: https://github.com/resque/resque-scheduler/compare/v4.1.0...v4.2.0
435
+ [4.1.0]: https://github.com/resque/resque-scheduler/compare/v4.0.0...v4.1.0
436
+ [4.0.0]: https://github.com/resque/resque-scheduler/compare/v3.1.0...v4.0.0
437
+ [3.1.0]: https://github.com/resque/resque-scheduler/compare/v3.0.0...v3.1.0
438
+ [3.0.0]: https://github.com/resque/resque-scheduler/compare/v2.5.5...v3.0.0
439
+ [2.5.5]: https://github.com/resque/resque-scheduler/compare/v2.5.4...v2.5.5
440
+ [2.5.4]: https://github.com/resque/resque-scheduler/compare/v2.5.3...v2.5.4
441
+ [2.5.3]: https://github.com/resque/resque-scheduler/compare/v2.5.2...v2.5.3
442
+ [2.5.2]: https://github.com/resque/resque-scheduler/compare/v2.5.1...v2.5.2
443
+ [2.5.1]: https://github.com/resque/resque-scheduler/compare/v2.5.0...v2.5.1
444
+ [2.5.0]: https://github.com/resque/resque-scheduler/compare/v2.4.0...v2.5.0
445
+ [2.4.0]: https://github.com/resque/resque-scheduler/compare/v2.3.1...v2.4.0
446
+ [2.3.1]: https://github.com/resque/resque-scheduler/compare/v2.3.0...v2.3.1
447
+ [2.3.0]: https://github.com/resque/resque-scheduler/compare/v2.2.0...v2.3.0
448
+ [2.2.0]: https://github.com/resque/resque-scheduler/compare/v2.1.0...v2.2.0
449
+ [2.1.0]: https://github.com/resque/resque-scheduler/compare/v2.0.1...v2.1.0
450
+ [2.0.1]: https://github.com/resque/resque-scheduler/compare/v2.0.0...v2.0.1
451
+ [2.0.0]: https://github.com/resque/resque-scheduler/compare/v2.0.0.h...v2.0.0
452
+ [2.0.0.h]: https://github.com/resque/resque-scheduler/compare/v2.0.0.f...v2.0.0.h
453
+ [2.0.0.f]: https://github.com/resque/resque-scheduler/compare/v2.0.0.e...v2.0.0.f
454
+ [2.0.0.e]: https://github.com/resque/resque-scheduler/compare/v2.0.0.d...v2.0.0.e
455
+ [2.0.0.d]: https://github.com/resque/resque-scheduler/compare/v2.0.0.c...v2.0.0.d
456
+ [2.0.0.c]: https://github.com/resque/resque-scheduler/compare/61c7b5f...v2.0.0.c
457
+ [2.0.0.b]: https://github.com/resque/resque-scheduler/compare/v2.0.0.a...61c7b5f
458
+ [1.9.11]: https://github.com/resque/resque-scheduler/compare/v1.9.10...v1.9.11
459
+ [1.9.10]: https://github.com/resque/resque-scheduler/compare/v1.9.9...v1.9.10
460
+ [1.9.9]: https://github.com/resque/resque-scheduler/compare/v1.9.8...v1.9.9
461
+ [1.9.8]: https://github.com/resque/resque-scheduler/compare/v1.9.7...v1.9.8
462
+ [1.9.7]: https://github.com/resque/resque-scheduler/compare/v1.9.6...v1.9.7
463
+ [1.9.6]: https://github.com/resque/resque-scheduler/compare/v1.9.5...v1.9.6
464
+ [1.9.5]: https://github.com/resque/resque-scheduler/compare/v1.9.4...v1.9.5
465
+ [1.9.4]: https://github.com/resque/resque-scheduler/compare/v1.9.3...v1.9.4
466
+ [1.9.3]: https://github.com/resque/resque-scheduler/compare/v1.9.2...v1.9.3
467
+ [1.9.2]: https://github.com/resque/resque-scheduler/compare/v1.9.1...v1.9.2
468
+ [1.9.1]: https://github.com/resque/resque-scheduler/compare/v1.9.0...v1.9.1
469
+ [1.9.0]: https://github.com/resque/resque-scheduler/compare/v1.8.2...v1.9.0
470
+ [1.8.2]: https://github.com/resque/resque-scheduler/compare/v1.8.1...v1.8.2
471
+ [1.8.1]: https://github.com/resque/resque-scheduler/compare/v1.8.0...v1.8.1
472
+ [1.8.0]: https://github.com/resque/resque-scheduler/compare/v1.0.5...v1.8.0
473
+ [1.0.5]: https://github.com/resque/resque-scheduler/compare/v1.0.4...v1.0.5
474
+ [1.0.4]: https://github.com/resque/resque-scheduler/compare/v1.0.3...v1.0.4
475
+ [1.0.3]: https://github.com/resque/resque-scheduler/compare/v1.0.2...v1.0.3
476
+ [1.0.2]: https://github.com/resque/resque-scheduler/compare/v1.0.1...v1.0.2
477
+ [1.0.1]: https://github.com/resque/resque-scheduler/compare/v1.0.0...v1.0.1
478
+ [1.0.0]: https://github.com/resque/resque-scheduler/compare/v0.0.1...v1.0.0