network_resiliency 0.7.7 → 0.7.9
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 +22 -18
- 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: a284503d2243c5b00f5ab5fc09ca842667ebb6db7ab489fd8fa0ce033b2e4b66
|
4
|
+
data.tar.gz: bcf55039bcfa3e4969a7d1a26f3393b362dd64b7318d0322b0cbe1755ce7c0f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a40fb761f8b03e3af86afcf9c37247b6e8666bd5326fb5d8922ed35b78d9fd95c700de8a4ce142d014143d55eaf4773dbc152a56dea031400151cd265dcaba7
|
7
|
+
data.tar.gz: f74ef650a917987afbcb72133f6b26491963cac0cb595f5f2505f49c70b0aa67dd5c1db8f290f3ad6a3708a4d950397111b5c487934082d403e2cd7f41e99cd1
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,20 +1,28 @@
|
|
1
1
|
module NetworkResiliency
|
2
2
|
class Syncer < Thread
|
3
|
+
LOCK = Mutex.new
|
4
|
+
|
3
5
|
class << self
|
4
|
-
def start
|
5
|
-
NetworkResiliency.
|
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
|
6
14
|
|
7
|
-
|
8
|
-
|
15
|
+
@instance
|
16
|
+
end
|
9
17
|
end
|
10
18
|
|
11
19
|
def stop
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
20
|
+
LOCK.synchronize do
|
21
|
+
if @instance
|
22
|
+
@instance.shutdown
|
23
|
+
@instance.join
|
24
|
+
@instance = nil
|
25
|
+
end
|
18
26
|
end
|
19
27
|
end
|
20
28
|
|
@@ -23,9 +31,7 @@ module NetworkResiliency
|
|
23
31
|
end
|
24
32
|
end
|
25
33
|
|
26
|
-
def initialize
|
27
|
-
@redis = redis
|
28
|
-
|
34
|
+
def initialize
|
29
35
|
super { sync }
|
30
36
|
end
|
31
37
|
|
@@ -33,18 +39,16 @@ module NetworkResiliency
|
|
33
39
|
@shutdown = true
|
34
40
|
|
35
41
|
# prevent needless delay
|
36
|
-
raise Interrupt if status == "sleep"
|
42
|
+
self.raise Interrupt if status == "sleep"
|
37
43
|
end
|
38
44
|
|
39
45
|
private
|
40
46
|
|
41
47
|
def sync
|
42
48
|
until @shutdown
|
43
|
-
|
44
|
-
|
45
|
-
StatsEngine.sync(@redis)
|
49
|
+
StatsEngine.sync(NetworkResiliency.redis)
|
46
50
|
|
47
|
-
sleep(
|
51
|
+
sleep(10)
|
48
52
|
end
|
49
53
|
rescue Interrupt
|
50
54
|
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.9
|
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-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|