marloss 0.2.1 → 0.3.0
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/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