resque-scheduler 4.2.1 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of resque-scheduler might be problematic. Click here for more details.

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