resque-scheduler 2.0.0 → 2.3.1
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.
- checksums.yaml +15 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +129 -0
- data/.travis.yml +18 -0
- data/AUTHORS.md +63 -0
- data/CONTRIBUTING.md +6 -0
- data/Gemfile +3 -7
- data/HISTORY.md +65 -6
- data/LICENSE +3 -1
- data/{README.markdown → README.md} +218 -113
- data/Rakefile +22 -9
- data/lib/resque/scheduler/lock/base.rb +52 -0
- data/lib/resque/scheduler/lock/basic.rb +28 -0
- data/lib/resque/scheduler/lock/resilient.rb +69 -0
- data/lib/resque/scheduler/lock.rb +3 -0
- data/lib/resque/scheduler.rb +56 -19
- data/lib/resque/scheduler_locking.rb +89 -0
- data/lib/resque_scheduler/logger_builder.rb +51 -0
- data/lib/resque_scheduler/server/views/delayed.erb +2 -1
- data/lib/resque_scheduler/server/views/requeue-params.erb +23 -0
- data/lib/resque_scheduler/server/views/scheduler.erb +4 -3
- data/lib/resque_scheduler/server.rb +25 -3
- data/lib/resque_scheduler/tasks.rb +9 -3
- data/lib/resque_scheduler/util.rb +34 -0
- data/lib/resque_scheduler/version.rb +3 -1
- data/lib/resque_scheduler.rb +89 -38
- data/resque-scheduler.gemspec +26 -20
- data/script/migrate_to_timestamps_set.rb +14 -0
- data/test/delayed_queue_test.rb +67 -16
- data/test/redis-test.conf +0 -7
- data/test/resque-web_test.rb +105 -3
- data/test/scheduler_args_test.rb +1 -1
- data/test/scheduler_locking_test.rb +180 -0
- data/test/scheduler_setup_test.rb +59 -0
- data/test/scheduler_test.rb +21 -12
- data/test/support/redis_instance.rb +129 -0
- data/test/test_helper.rb +26 -14
- metadata +105 -32
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZDgyOTE0ZDU0NTg0MDZlNGRlM2ExZjQ0OWY5ZThhM2I3YzEyMGVmYg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NjFkMGU4MDU2YTZiODdjMjk5NDdjNjY4YTg0MjY2ZWM3MmI5NGJhOA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OGIwZjNmYzUyYzQwNGQ0ZjFhMGMzZjdiNTViMDVhYWU3Y2NmZDdiMjEyYzFj
|
10
|
+
MjBmMTU1MTg2ZjQ0M2QzZjJiY2E5ZDZhM2YyYzFlYWZlYWIwZjI1Y2I2NjBh
|
11
|
+
Y2M2ZDgzZDk3ZmRiODQ4ZjhhMGVjYTAxMzU0YjU3MTJiNTM1NTE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjEwNDRlOTkxNzZkMzQ2Y2U2YjUyY2FkMWEyZDFmZjUwOGUzNzM4YTNjOWJk
|
14
|
+
MTZmMjQzNDczNWM4NjQ2NTk2NmU2OTQ3YzNhM2IwOThjZGUyMGI0MDgyNGQ3
|
15
|
+
NWM4MDVlODllODkxZDM2MDcxNTBlODI2NjkyMjU4MjI3NjdlNjg=
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
# This configuration was generated by `rubocop --auto-gen-config`.
|
2
|
+
# The point is for the user to remove these configuration records
|
3
|
+
# one by one as the offences are removed from the code base.
|
4
|
+
|
5
|
+
AlignParameters:
|
6
|
+
Enabled: false
|
7
|
+
|
8
|
+
AssignmentInCondition:
|
9
|
+
Enabled: false
|
10
|
+
|
11
|
+
BracesAroundHashParameters:
|
12
|
+
Enabled: false
|
13
|
+
|
14
|
+
CaseEquality:
|
15
|
+
Enabled: false
|
16
|
+
|
17
|
+
ClassLength:
|
18
|
+
Enabled: false
|
19
|
+
|
20
|
+
ClassVars:
|
21
|
+
Enabled: false
|
22
|
+
|
23
|
+
CollectionMethods:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
ColonMethodCall:
|
27
|
+
Enabled: false
|
28
|
+
|
29
|
+
CommentAnnotation:
|
30
|
+
Enabled: false
|
31
|
+
|
32
|
+
CyclomaticComplexity:
|
33
|
+
Enabled: false
|
34
|
+
|
35
|
+
Documentation:
|
36
|
+
Enabled: false
|
37
|
+
|
38
|
+
EmptyLines:
|
39
|
+
Enabled: false
|
40
|
+
|
41
|
+
EmptyLinesAroundBody:
|
42
|
+
Enabled: false
|
43
|
+
|
44
|
+
Encoding:
|
45
|
+
Enabled: false
|
46
|
+
|
47
|
+
FavorUnlessOverNegatedIf:
|
48
|
+
Enabled: false
|
49
|
+
|
50
|
+
FavorUntilOverNegatedWhile:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
HandleExceptions:
|
54
|
+
Enabled: false
|
55
|
+
|
56
|
+
HashSyntax:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
IfUnlessModifier:
|
60
|
+
Enabled: false
|
61
|
+
|
62
|
+
LineLength:
|
63
|
+
Enabled: false
|
64
|
+
|
65
|
+
Loop:
|
66
|
+
Enabled: false
|
67
|
+
|
68
|
+
MethodCallParentheses:
|
69
|
+
Enabled: false
|
70
|
+
|
71
|
+
MethodLength:
|
72
|
+
Enabled: false
|
73
|
+
|
74
|
+
ModuleFunction:
|
75
|
+
Enabled: false
|
76
|
+
|
77
|
+
NumericLiterals:
|
78
|
+
Enabled: false
|
79
|
+
|
80
|
+
ParenthesesAroundCondition:
|
81
|
+
Enabled: false
|
82
|
+
|
83
|
+
PerlBackrefs:
|
84
|
+
Enabled: false
|
85
|
+
|
86
|
+
RedundantBegin:
|
87
|
+
Enabled: false
|
88
|
+
|
89
|
+
RescueException:
|
90
|
+
Enabled: false
|
91
|
+
|
92
|
+
RescueModifier:
|
93
|
+
Enabled: false
|
94
|
+
|
95
|
+
SingleLineMethods:
|
96
|
+
Enabled: false
|
97
|
+
|
98
|
+
SpaceAfterComma:
|
99
|
+
Enabled: false
|
100
|
+
|
101
|
+
SpaceAroundBlockBraces:
|
102
|
+
Enabled: false
|
103
|
+
|
104
|
+
SpaceAroundEqualsInParameterDefault:
|
105
|
+
Enabled: false
|
106
|
+
|
107
|
+
SpaceAroundOperators:
|
108
|
+
Enabled: false
|
109
|
+
|
110
|
+
SpaceInsideHashLiteralBraces:
|
111
|
+
Enabled: false
|
112
|
+
|
113
|
+
SpecialGlobalVars:
|
114
|
+
Enabled: false
|
115
|
+
|
116
|
+
StringLiterals:
|
117
|
+
Enabled: false
|
118
|
+
|
119
|
+
TrailingBlankLines:
|
120
|
+
Enabled: false
|
121
|
+
|
122
|
+
TrailingWhitespace:
|
123
|
+
Enabled: false
|
124
|
+
|
125
|
+
TrivialAccessors:
|
126
|
+
Enabled: false
|
127
|
+
|
128
|
+
UselessAssignment:
|
129
|
+
Enabled: false
|
data/.travis.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- ree
|
4
|
+
- 1.9.3
|
5
|
+
- 2.0.0
|
6
|
+
script: bundle exec rake rubocop test
|
7
|
+
notifications:
|
8
|
+
email:
|
9
|
+
recipients: daniel.buch+resque-scheduler@gmail.com
|
10
|
+
deploy:
|
11
|
+
provider: rubygems
|
12
|
+
api_key:
|
13
|
+
secure: dM97lL/jTu14mEHD2Ih/vQfZ8cWJWb+DQ8UKZjkD2JfYtvwEAlkPG9RrrDkSHb5qkYxG2VAhjyx/0MZJ0TsVL6wrLMC9gcJb3yomw2Sch2Noj68tEndiSUHnxrB9gKzbhHbjLQXDqYf4Hco9/PHHQp4piFPJhLzNZRehIuTJPcA=
|
14
|
+
gem: resque-scheduler
|
15
|
+
on:
|
16
|
+
tags: true
|
17
|
+
repo: resque/resque-scheduler
|
18
|
+
rvm: 2.0.0
|
data/AUTHORS.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
Resque Scheduler authors
|
2
|
+
========================
|
3
|
+
|
4
|
+
- Aaron Suggs
|
5
|
+
- Alexander Simonov
|
6
|
+
- Ben VandenBos
|
7
|
+
- Bernerd Schaefer
|
8
|
+
- Bogdan Gusiev
|
9
|
+
- Brian Landau
|
10
|
+
- Brian P O'Rourke
|
11
|
+
- Carlos Antonio da Silva
|
12
|
+
- Chris Kampmeier
|
13
|
+
- DJ Hartman
|
14
|
+
- Damon P. Cortesi
|
15
|
+
- Dan Buch
|
16
|
+
- Dave Grijalva
|
17
|
+
- David Backeus
|
18
|
+
- David Balatero
|
19
|
+
- David Doan
|
20
|
+
- David Yang
|
21
|
+
- Denis Yagofarov
|
22
|
+
- Evan Tahler
|
23
|
+
- Eugene Batogov
|
24
|
+
- Giovanni Cappellotto
|
25
|
+
- Harry Lascelles
|
26
|
+
- Henrik Nyh
|
27
|
+
- James Le Cuirot
|
28
|
+
- John Crepezzi
|
29
|
+
- John Griffin
|
30
|
+
- Jon Larkowski and Les Hill
|
31
|
+
- Jonathan Hyman
|
32
|
+
- Jonathan Owens
|
33
|
+
- Joshua Szmajda
|
34
|
+
- Justin Weiss
|
35
|
+
- Les Hill
|
36
|
+
- Manuel Meurer
|
37
|
+
- Matt Aimonetti
|
38
|
+
- Matt Simpson
|
39
|
+
- Matteo Centenaro
|
40
|
+
- Michael Lovitt
|
41
|
+
- Michael Nikitochkin
|
42
|
+
- Michael Rykov
|
43
|
+
- Nickolas Means
|
44
|
+
- Olek Janiszewski
|
45
|
+
- Olivier Brisse
|
46
|
+
- Petteri Räty
|
47
|
+
- Phil Cohen
|
48
|
+
- Russell Branca
|
49
|
+
- Ryan Biesemeyer
|
50
|
+
- Ryan Carver
|
51
|
+
- Sebastian Kippe
|
52
|
+
- Spring MC
|
53
|
+
- Tim Liner
|
54
|
+
- Tony Lewis
|
55
|
+
- Vincent Zhu
|
56
|
+
- V Sreekanth
|
57
|
+
- andreas
|
58
|
+
- bbauer
|
59
|
+
- fallwith
|
60
|
+
- gravis
|
61
|
+
- hpoydar
|
62
|
+
- malomalo
|
63
|
+
- sawanoboly
|
data/CONTRIBUTING.md
ADDED
data/Gemfile
CHANGED
data/HISTORY.md
CHANGED
@@ -1,4 +1,56 @@
|
|
1
|
-
## 2.
|
1
|
+
## 2.3.1 (2013-11-20)
|
2
|
+
|
3
|
+
* Correcting `require_paths` in gemspec
|
4
|
+
|
5
|
+
## 2.3.0 (2013-11-07)
|
6
|
+
|
7
|
+
* Fix re-introduced `ThreadError` on Ruby 2
|
8
|
+
* **BREAKING CHANGE**: Added `RESQUE_SCHEDULER_INTERVAL` in place of `INTERVAL`
|
9
|
+
* Use `Float()` instead of `Integer()` to calculate poll sleep amount
|
10
|
+
* Upgraded dependence of Resque to support 1.25
|
11
|
+
* Add rufus scheduler `every` notice to README
|
12
|
+
* Use `Resque.validate` instead of custom `.validate_job!`
|
13
|
+
* Specify MIT license in gemspec
|
14
|
+
|
15
|
+
## 2.2.0 (2013-10-13)
|
16
|
+
|
17
|
+
* Locking rufus-scheduler dependency to `~> 2.0`
|
18
|
+
* Updated redis dependency to `>= 3.0.0`
|
19
|
+
* Add support for parameterized resque jobs.
|
20
|
+
* Allowing prefix for `master_lock_key`.
|
21
|
+
* Add `Resque.clean_schedules` method, which is useful when setting up the
|
22
|
+
scheduler for the first time.
|
23
|
+
* Bug fixes related to first time schedule retrieval and missing schedules.
|
24
|
+
|
25
|
+
## 2.1.0 (2013-09-20)
|
26
|
+
|
27
|
+
* Locking to resque < 1.25.0 (for now)
|
28
|
+
* Ensuring `Resque.schedule=` sets rather than appends
|
29
|
+
* Process daemonization fixes including stdio redirection and redis client
|
30
|
+
reconnection
|
31
|
+
* Add `#scheduled_at` which returns an array of timestamps at which the
|
32
|
+
specified job is scheduled
|
33
|
+
* Syncing stdout/stderr
|
34
|
+
* Add `#enqueue_delayed` for enqueueing specific delayed jobs immediately
|
35
|
+
* Show server local time in resque-web
|
36
|
+
* Enqueue immediately if job is being enqueued in the past
|
37
|
+
* Using a logger instead of `#puts`, configurable via `LOGFILE`, `VERBOSE`, and
|
38
|
+
`MUTE` environmental variables, as well as being settable via
|
39
|
+
`Resque::Scheduler#logger`
|
40
|
+
* Fixing scheduler template when arrays are passed to rufus-scheduler
|
41
|
+
* Add support for configuring `Resque::Scheduler.poll_sleep_amount` via the
|
42
|
+
`INTERVAL` environmental variable.
|
43
|
+
* Fixed shutdown in ruby 2.0.0
|
44
|
+
* Removed dependency on `Resque::Helpers`
|
45
|
+
|
46
|
+
## 2.0.1 (2013-03-20)
|
47
|
+
|
48
|
+
* Adding locking to support master failover
|
49
|
+
* Allow custom job classes to be used in `Resque.enqueue_at`
|
50
|
+
* More efficient `#remove_delayed` implementation
|
51
|
+
* Allowing `#enqueue_at` to call `#scheduled` when `Resque.inline` is `true`
|
52
|
+
|
53
|
+
## 2.0.0 (2012-05-04)
|
2
54
|
|
3
55
|
* Add support for Resque.inline configuration (carlosantoniodasilva)
|
4
56
|
* Fixing possible job loss race condition around deleting delayed queues
|
@@ -11,14 +63,14 @@
|
|
11
63
|
### 2.0.0.f (2011-11-03)
|
12
64
|
|
13
65
|
* TODO: address race condition with delayed jobs (using redis transactions)
|
14
|
-
* Support ENV['BACKGROUND'] flag for daemonizing (bernerdschaefer)
|
15
|
-
* Added support for before_schedule and after_schedule hooks (yaauie)
|
16
|
-
* Added remove_delayed_job_from_timestamp to remove delayed jobs from
|
66
|
+
* Support `ENV['BACKGROUND']` flag for daemonizing (bernerdschaefer)
|
67
|
+
* Added support for `before_schedule` and `after_schedule` hooks (yaauie)
|
68
|
+
* Added `remove_delayed_job_from_timestamp` to remove delayed jobs from
|
17
69
|
a given timestamp.
|
18
70
|
|
19
71
|
### 2.0.0.e (2011-09-16)
|
20
72
|
|
21
|
-
* Adding enqueue_at_with_queue
|
73
|
+
* Adding `enqueue_at_with_queue`/`enqueue_in_with_queue` support (niralisse)
|
22
74
|
* Adding `Resque::Scheduler.poll_sleep_amount` to allow for configuring
|
23
75
|
the sleep time b/w delayed queue polls.
|
24
76
|
* Add a "Clear Delayed Jobs" button to the Delayed Jobs page (john-griffin)
|
@@ -41,6 +93,13 @@
|
|
41
93
|
* Dynamic schedule support (brianjlandau, davidyang)
|
42
94
|
* Now depends on redis >=1.3
|
43
95
|
|
96
|
+
## 1.9.10 (2013-09-19)
|
97
|
+
|
98
|
+
* Backported `#enqueue_at_with_queue`
|
99
|
+
* Locking to resque < 1.25.0
|
100
|
+
* Mocha setup compatibility
|
101
|
+
* Ruby 1.8 compatibility in scheduler tab when schedule keys are symbols
|
102
|
+
|
44
103
|
## 1.9.9 (2011-03-29)
|
45
104
|
|
46
105
|
* Compatibility with resque 1.15.0
|
@@ -53,7 +112,7 @@
|
|
53
112
|
## 1.9.7 (2010-11-09)
|
54
113
|
|
55
114
|
* Support for rufus-scheduler "every" syntax (fallwith)
|
56
|
-
* Ability to pass a Time to handle_delayed_items for testing/staging (rcarver)
|
115
|
+
* Ability to pass a Time to `handle_delayed_items` for testing/staging (rcarver)
|
57
116
|
|
58
117
|
## 1.9.6 (2010-10-08)
|
59
118
|
|