marloss 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +4 -14
- data/lib/marloss.rb +1 -11
- data/lib/marloss/locker.rb +0 -19
- data/lib/marloss/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ae07afe91d9f8991ee6f16ac5f0bc73d90373b3a358f56bc5941435c1b4ac88
|
4
|
+
data.tar.gz: 92ae1c2485e09183222b257d5dfd48ad7b11aede6a83332f2f6f6b00a7c76259
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac62d5a1dce8b8ef243c2a9b57295a10d6382dfa5ede24a709b65bc6c91073a45007c6e6f2b7076fc613971bc5dd31458761075110c58442b4f01f9121c6c6a3
|
7
|
+
data.tar.gz: ec898a131cccd2c4e6c1f0ce246f9f745c4ba2d2178ad060779760d424f454900305176fe19df41878967aba14ad7c8abbe0e920d15f124a466590be20545c64
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -48,16 +48,11 @@ end
|
|
48
48
|
now you can simply wrap the code that needs to be locked
|
49
49
|
|
50
50
|
```ruby
|
51
|
-
with_marloss_locker("my_lock")
|
52
|
-
# execute code
|
53
|
-
end
|
54
|
-
```
|
55
|
-
|
56
|
-
if you have a long running task and you need to make sure you don't lose the lock
|
57
|
-
|
58
|
-
```ruby
|
59
|
-
with_refreshed_marloss_locker("my_lock")
|
51
|
+
with_marloss_locker("my_lock") do |locker|
|
60
52
|
# execute code
|
53
|
+
# ...
|
54
|
+
# refresh lock if needed
|
55
|
+
locker.refresh
|
61
56
|
end
|
62
57
|
```
|
63
58
|
|
@@ -83,11 +78,6 @@ locker.wait_until_lock_obtained
|
|
83
78
|
# refresh the lock once
|
84
79
|
locker.refresh
|
85
80
|
|
86
|
-
# or execute block with lock being refreshed
|
87
|
-
locker.with_refreshed_lock do
|
88
|
-
# execute long running code
|
89
|
-
end
|
90
|
-
|
91
81
|
# delete the lock
|
92
82
|
locker.release_lock
|
93
83
|
```
|
data/lib/marloss.rb
CHANGED
@@ -56,17 +56,7 @@ module Marloss
|
|
56
56
|
|
57
57
|
locker.wait_until_lock_obtained(opts)
|
58
58
|
|
59
|
-
yield
|
60
|
-
|
61
|
-
locker.release_lock
|
62
|
-
end
|
63
|
-
|
64
|
-
def with_refreshed_marloss_locker(name, opts = {})
|
65
|
-
locker = marloss_locker(name)
|
66
|
-
|
67
|
-
locker.wait_until_lock_obtained(opts)
|
68
|
-
|
69
|
-
locker.with_refreshed_lock { yield }
|
59
|
+
yield(locker)
|
70
60
|
|
71
61
|
locker.release_lock
|
72
62
|
end
|
data/lib/marloss/locker.rb
CHANGED
@@ -29,24 +29,5 @@ module Marloss
|
|
29
29
|
retry
|
30
30
|
end
|
31
31
|
|
32
|
-
def with_refreshed_lock
|
33
|
-
thr = Thread.new do
|
34
|
-
loop do
|
35
|
-
begin
|
36
|
-
store.refresh_lock(name)
|
37
|
-
rescue Exception => e
|
38
|
-
Thread.main.raise(e)
|
39
|
-
end
|
40
|
-
|
41
|
-
sleep(store.ttl / 3.0)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
yield
|
46
|
-
|
47
|
-
ensure
|
48
|
-
thr.kill
|
49
|
-
end
|
50
|
-
|
51
32
|
end
|
52
33
|
end
|
data/lib/marloss/version.rb
CHANGED