redis_locker 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/redis_locker.rb +15 -13
- data/lib/redis_locker/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: 485a98c013b875b6f0699ac1307441a2dda2cc10474a86c6c610d0e03b6f43a2
|
4
|
+
data.tar.gz: 2a60017d8381da6108b70940e4e0c70430772481ce9db16c819156d990a1d961
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fded68786c2a33b4393bf5469549c039dcdfa1bb250b750e14590deadd70978747bab1c78e41514e9900f17b07fcfa4d6e5ce33e5e7ef0cd602d6595a8de164
|
7
|
+
data.tar.gz: 0b172e57ce4bab224bae4e03ed07344142ffb7eb3168c47f42ca0b3d322c5d9a713e222c233047963738125a4e2ffb6314a5008bb6057cb7380cec556ca527b6
|
data/lib/redis_locker.rb
CHANGED
@@ -29,14 +29,6 @@ module RedisLocker
|
|
29
29
|
base_klass.extend(ClassMethods)
|
30
30
|
base_klass.include(InstanceMethods)
|
31
31
|
interceptor = base_klass.const_set("#{base_klass.name.split('::').last}Interceptor", Module.new)
|
32
|
-
puts interceptor
|
33
|
-
interceptor.class_eval do
|
34
|
-
def initialize(*args, **opts, &block)
|
35
|
-
@model_locker = RedisLocker::ModelLocker.new(self)
|
36
|
-
@method_lockers = {}
|
37
|
-
super(*args, **opts, &block)
|
38
|
-
end
|
39
|
-
end
|
40
32
|
base_klass.prepend interceptor
|
41
33
|
end
|
42
34
|
|
@@ -71,24 +63,34 @@ module RedisLocker
|
|
71
63
|
|
72
64
|
module InstanceMethods
|
73
65
|
def method_locker(method)
|
74
|
-
|
66
|
+
method_lockers[method] ||= RedisLocker::MethodLocker.new(model_locker, method)
|
75
67
|
end
|
76
68
|
|
77
69
|
def lock
|
78
|
-
|
70
|
+
model_locker.lock
|
79
71
|
end
|
80
72
|
|
81
73
|
def lock!
|
82
|
-
|
74
|
+
model_locker.lock!
|
83
75
|
end
|
84
76
|
|
85
77
|
def unlock
|
86
|
-
|
78
|
+
model_locker.unlock
|
87
79
|
end
|
88
80
|
|
89
81
|
def with_redis_lock(strategy: RedisLocker::DEFAULT_STRATEGY, retry_count: RedisLocker::DEFAULT_RETRY_COUNT,
|
90
82
|
retry_interval: RedisLocker::DEFAULT_RETRY_INTERVAL, &block)
|
91
|
-
|
83
|
+
model_locker.with_redis_lock(strategy: strategy, retry_count: retry_count, retry_interval: retry_interval, &block)
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
def method_lockers
|
89
|
+
@method_lockers ||= {}
|
90
|
+
end
|
91
|
+
|
92
|
+
def model_locker
|
93
|
+
@model_locker ||= RedisLocker::ModelLocker.new(self)
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
data/lib/redis_locker/version.rb
CHANGED