resque-scheduler 2.0.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
|
|