resque-lock-timeout 0.4.4 → 0.4.5
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.
- checksums.yaml +4 -4
- data/HISTORY.md +17 -13
- data/lib/resque/plugins/lock_timeout.rb +6 -8
- data/test/lock_test.rb +6 -0
- data/test/test_jobs.rb +12 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15a27985b2511a44c3f9808f0083d08f8f023d5d
|
4
|
+
data.tar.gz: 7daba033435c96b21d64119c9722019c95873e63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ad5415a6ee68d5a9a8692d0cad712247fad35cb24604ee9b2b108778b168ac7a78d7ca5e7f0bd7e5d77b9c599a01eb158f9975571d7ed7e916579a49d9ff343
|
7
|
+
data.tar.gz: 41cb07ffda36778df97b21e5a52a37d1d3941aa185fe9fadb0bb5b723004137bf6accfbc030faa8403f2b61b1c7b409ed2797f1ab17afd2c7bcdbe0b43a21dcb
|
data/HISTORY.md
CHANGED
@@ -1,39 +1,43 @@
|
|
1
|
+
## 0.4.5 (2015-08-04)
|
2
|
+
|
3
|
+
- Fix: ensure exceptions are kept if raised **after** lock timeout expires.
|
4
|
+
|
1
5
|
## 0.4.4 (2014-02-21)
|
2
6
|
|
3
|
-
|
4
|
-
|
7
|
+
- Add: `enqueued?` and `loner_locked?` helper methods.
|
8
|
+
- Bump minimum version of resque to v1.22
|
5
9
|
|
6
10
|
## 0.4.1 (2012-11-19)
|
7
11
|
|
8
|
-
|
12
|
+
- Fix: allow `@loner` job to be enqueued if timeout expires.
|
9
13
|
|
10
14
|
## 0.4.0 (2012-11-09)
|
11
15
|
|
12
|
-
|
16
|
+
- Add: `@loner` boolean option to prevent job being enqueued if already
|
13
17
|
running/enqueued. (Thanks to @ssaunier)
|
14
18
|
|
15
19
|
## 0.3.3 (2012-03-09)
|
16
20
|
|
17
|
-
|
21
|
+
- Tested against v1.20.0 of resque.
|
18
22
|
|
19
23
|
## 0.3.1 (2011-07-16)
|
20
24
|
|
21
|
-
|
22
|
-
|
25
|
+
- Pass job arguments to `lock_timeout`. (Bob Potter)
|
26
|
+
- Added `refresh_lock!` method for long running jobs. (Bob Potter)
|
23
27
|
|
24
28
|
## 0.3.0 (2011-07-16)
|
25
29
|
|
26
|
-
|
30
|
+
- Ability to customize redis connection used for storing locks.
|
27
31
|
(thanks Richie Vos =))
|
28
|
-
|
29
|
-
|
32
|
+
- Added Bundler `Gemfile`.
|
33
|
+
- Added abstract stub methods for callback methods:
|
30
34
|
`lock_failed`, `lock_expired_before_release`
|
31
35
|
|
32
36
|
## 0.2.1 (2010-06-16)
|
33
37
|
|
34
|
-
|
38
|
+
- Relax gemspec dependancies.
|
35
39
|
|
36
40
|
## 0.2.0 (2010-05-05)
|
37
41
|
|
38
|
-
|
39
|
-
`resque-lock`.
|
42
|
+
- Initial release as `resque-lock-timeout`, forked from Chris Wanstrath'
|
43
|
+
`resque-lock`.
|
@@ -287,15 +287,13 @@ module Resque
|
|
287
287
|
ensure
|
288
288
|
# Release the lock on success and error. Unless a lock_timeout is
|
289
289
|
# used, then we need to be more careful before releasing the lock.
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
end
|
290
|
+
now = Time.now.to_i
|
291
|
+
if lock_until != true and lock_until < now
|
292
|
+
# Eeek! Lock expired before perform finished. Trigger callback.
|
293
|
+
lock_expired_before_release(*args)
|
294
|
+
else
|
295
|
+
release_lock!(*args)
|
297
296
|
end
|
298
|
-
release_lock!(*args)
|
299
297
|
end
|
300
298
|
end
|
301
299
|
|
data/test/lock_test.rb
CHANGED
@@ -225,4 +225,10 @@ class LockTest < Minitest::Test
|
|
225
225
|
Resque.enqueue(LonelyJob)
|
226
226
|
assert_equal 1, Resque.size(:test), "Should have enqueued the job"
|
227
227
|
end
|
228
|
+
|
229
|
+
def test_exceptions_in_job_after_timeout_should_be_marked_as_failure
|
230
|
+
Resque.enqueue(FailingAfterTimeoutJob)
|
231
|
+
@worker.process
|
232
|
+
assert_equal 1, Resque::Failure.count, "Should have been marked as failure"
|
233
|
+
end
|
228
234
|
end
|
data/test/test_jobs.rb
CHANGED
@@ -158,3 +158,15 @@ class LonelyTimeoutExpiringJob
|
|
158
158
|
sleep 2
|
159
159
|
end
|
160
160
|
end
|
161
|
+
|
162
|
+
# Job that raises an error after its timeout.
|
163
|
+
class FailingAfterTimeoutJob
|
164
|
+
extend Resque::Plugins::LockTimeout
|
165
|
+
@queue = :test
|
166
|
+
@lock_timeout = 1
|
167
|
+
|
168
|
+
def self.perform
|
169
|
+
sleep 2
|
170
|
+
raise
|
171
|
+
end
|
172
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque-lock-timeout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Antins
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-08-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: resque
|
@@ -30,16 +30,16 @@ dependencies:
|
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - "
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
35
|
+
version: '10.3'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - "
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '10.3'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: minitest
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
128
|
version: '0'
|
129
129
|
requirements: []
|
130
130
|
rubyforge_project:
|
131
|
-
rubygems_version: 2.
|
131
|
+
rubygems_version: 2.4.6
|
132
132
|
signing_key:
|
133
133
|
specification_version: 4
|
134
134
|
summary: A Resque plugin adding locking, with optional timeout/deadlock handling to
|