network_resiliency 0.7.6 → 0.7.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +1 -1
- data/lib/network_resiliency/syncer.rb +23 -10
- data/lib/network_resiliency/version.rb +1 -1
- data/lib/network_resiliency.rb +4 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b5df76818e3c5cb07bd98a1fadb1eb7c905f33a40198b7168c02c72d4f32422
|
4
|
+
data.tar.gz: 44cb15f0338ab3b49a496630eb118da9aafdd8b3d79d6746502a624b55782780
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b66b0ab770b6292f8ee92a22d1df5de7ce4645a4b2f5bfca58ffc8b319ad8787486ba47426e67d8cc02c1a9fcf87f7576411685b08a033674e60308108a2461e
|
7
|
+
data.tar.gz: 58f2057045c560ab5ddb09f98ff5fee88676bcfa31f62e9fddbacdacb02e75d94e0c4edb02fb5fdc67db6fdc16f47ef522321d9b1511f41176868538775105d2
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,14 +1,29 @@
|
|
1
1
|
module NetworkResiliency
|
2
2
|
class Syncer < Thread
|
3
|
+
LOCK = Mutex.new
|
4
|
+
|
3
5
|
class << self
|
4
|
-
def start
|
5
|
-
|
6
|
-
|
6
|
+
def start
|
7
|
+
return unless NetworkResiliency.redis
|
8
|
+
|
9
|
+
LOCK.synchronize do
|
10
|
+
unless @instance&.alive?
|
11
|
+
@instance = new
|
12
|
+
NetworkResiliency.statsd&.increment("network_resiliency.syncer.start")
|
13
|
+
end
|
14
|
+
|
15
|
+
@instance
|
16
|
+
end
|
7
17
|
end
|
8
18
|
|
9
19
|
def stop
|
10
|
-
|
11
|
-
|
20
|
+
LOCK.synchronize do
|
21
|
+
if @instance
|
22
|
+
@instance.shutdown
|
23
|
+
@instance.join
|
24
|
+
@instance = nil
|
25
|
+
end
|
26
|
+
end
|
12
27
|
end
|
13
28
|
|
14
29
|
def syncing?
|
@@ -16,9 +31,7 @@ module NetworkResiliency
|
|
16
31
|
end
|
17
32
|
end
|
18
33
|
|
19
|
-
def initialize
|
20
|
-
@redis = redis
|
21
|
-
|
34
|
+
def initialize
|
22
35
|
super { sync }
|
23
36
|
end
|
24
37
|
|
@@ -26,14 +39,14 @@ module NetworkResiliency
|
|
26
39
|
@shutdown = true
|
27
40
|
|
28
41
|
# prevent needless delay
|
29
|
-
raise Interrupt if status == "sleep"
|
42
|
+
self.raise Interrupt if status == "sleep"
|
30
43
|
end
|
31
44
|
|
32
45
|
private
|
33
46
|
|
34
47
|
def sync
|
35
48
|
until @shutdown
|
36
|
-
StatsEngine.sync(
|
49
|
+
StatsEngine.sync(NetworkResiliency.redis)
|
37
50
|
|
38
51
|
sleep(3)
|
39
52
|
end
|
data/lib/network_resiliency.rb
CHANGED
@@ -28,8 +28,6 @@ module NetworkResiliency
|
|
28
28
|
def configure
|
29
29
|
yield self if block_given?
|
30
30
|
|
31
|
-
Syncer.start(redis) if redis
|
32
|
-
|
33
31
|
unless @patched
|
34
32
|
# patch everything that's available
|
35
33
|
ADAPTERS.each do |adapter|
|
@@ -238,7 +236,7 @@ module NetworkResiliency
|
|
238
236
|
}.compact,
|
239
237
|
)
|
240
238
|
|
241
|
-
NetworkResiliency.statsd&.
|
239
|
+
NetworkResiliency.statsd&.distribution(
|
242
240
|
"network_resiliency.#{action}.timeout",
|
243
241
|
timeout,
|
244
242
|
tags: {
|
@@ -267,6 +265,9 @@ module NetworkResiliency
|
|
267
265
|
sync: Syncer.syncing?,
|
268
266
|
}
|
269
267
|
|
268
|
+
# ensure Syncer is running
|
269
|
+
Syncer.start
|
270
|
+
|
270
271
|
NetworkResiliency.statsd&.distribution(
|
271
272
|
"network_resiliency.#{action}.stats.n",
|
272
273
|
stats.n,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: network_resiliency
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Pepper
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|