refilling_queue 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/refilling_queue.rb +8 -2
- data/lib/refilling_queue/version.rb +1 -1
- metadata +3 -3
data/Gemfile.lock
CHANGED
data/lib/refilling_queue.rb
CHANGED
@@ -47,8 +47,14 @@ class RefillingQueue
|
|
47
47
|
|
48
48
|
def lock
|
49
49
|
lock = "#{@name}_lock"
|
50
|
-
|
51
|
-
|
50
|
+
|
51
|
+
# transaction: prevent infinite lock when process dies immediately after setting lock
|
52
|
+
acquired, _ = @client.multi do
|
53
|
+
@client.setnx lock, "1"
|
54
|
+
@client.expire lock, @options[:lock_timeout]
|
55
|
+
end
|
56
|
+
raise RefillingQueue::Locked unless acquired
|
57
|
+
|
52
58
|
begin
|
53
59
|
yield
|
54
60
|
ensure
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refilling_queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -42,7 +42,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
42
42
|
version: '0'
|
43
43
|
segments:
|
44
44
|
- 0
|
45
|
-
hash:
|
45
|
+
hash: -2533570961055463155
|
46
46
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
47
47
|
none: false
|
48
48
|
requirements:
|
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
51
|
version: '0'
|
52
52
|
segments:
|
53
53
|
- 0
|
54
|
-
hash:
|
54
|
+
hash: -2533570961055463155
|
55
55
|
requirements: []
|
56
56
|
rubyforge_project:
|
57
57
|
rubygems_version: 1.8.24
|