sc4ry 0.1.1 → 0.1.4
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/lib/sc4ry/circuits.rb +6 -1
- data/lib/sc4ry/dependencies.rb +2 -0
- data/lib/sc4ry/exceptions.rb +11 -0
- data/lib/sc4ry/logger.rb +1 -1
- data/lib/sc4ry/run_controller.rb +6 -1
- data/lib/sc4ry/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63f7aa01b54f949abb2f4dd1443fd8b42a16346673200e9394d091dafc5efb06
|
4
|
+
data.tar.gz: fbed3c85b892cf1997100ed7753a48f51bcfff106285071083e4f6fc6845b7c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2435573c1f5e0d1476548f2d581f4a00029d6c8d67a4824402e8de3b5b3528cc32d307149e61ad1cd751fb3561a43cd75c6ae7791888c1c8048258ce2c9fcfd8
|
7
|
+
data.tar.gz: 9bd96086e6cc1260c9e1e43df45b4743d2d8c8d4df5d4ae23eb8af32822960304aa38d363626ca816895861eed79839ca0f3311995ad301904fc941aef8fc6e0
|
data/lib/sc4ry/circuits.rb
CHANGED
@@ -11,6 +11,8 @@ module Sc4ry
|
|
11
11
|
:max_overtime_count => 3,
|
12
12
|
:check_delay => 30,
|
13
13
|
:notifiers => [],
|
14
|
+
:forward_unknown_exceptions => true,
|
15
|
+
:raise_on_opening => false,
|
14
16
|
:exceptions => [StandardError, RuntimeError]
|
15
17
|
}
|
16
18
|
|
@@ -86,7 +88,10 @@ module Sc4ry
|
|
86
88
|
[:closed,:half_open,:open].each do |status|
|
87
89
|
data[:status][:general] = status if worst_status.include? status
|
88
90
|
end
|
89
|
-
|
91
|
+
if save != data[:status][:general] then
|
92
|
+
raise Sc4ry::Exceptions::CircuitBreaked if data[:status][:general] == :open and data[:raise_on_opening]
|
93
|
+
Sc4ry::Helpers.notify circuit: options[:circuit], config: data
|
94
|
+
end
|
90
95
|
@@circuits_store.put key: options[:circuit], value: data
|
91
96
|
end
|
92
97
|
end
|
data/lib/sc4ry/dependencies.rb
CHANGED
data/lib/sc4ry/logger.rb
CHANGED
data/lib/sc4ry/run_controller.rb
CHANGED
@@ -43,7 +43,12 @@ module Sc4ry
|
|
43
43
|
elsif @circuit[:exceptions].include? e.class
|
44
44
|
@failure = true
|
45
45
|
else
|
46
|
-
|
46
|
+
if @circuit[:forward_unknown_exceptions] then
|
47
|
+
raise e.class, "Sc4ry forward: #{e.message}"
|
48
|
+
else
|
49
|
+
Sc4ry::Helpers.log level: :debug, message: "skipped : #{@last_exception}"
|
50
|
+
end
|
51
|
+
|
47
52
|
end
|
48
53
|
end
|
49
54
|
@end_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
data/lib/sc4ry/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sc4ry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Romain GEORGES
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Sc4ry provide the design pattern Circuit breaker for your application.
|
14
14
|
email:
|
@@ -33,6 +33,7 @@ files:
|
|
33
33
|
- lib/sc4ry/backends/redis.rb
|
34
34
|
- lib/sc4ry/circuits.rb
|
35
35
|
- lib/sc4ry/dependencies.rb
|
36
|
+
- lib/sc4ry/exceptions.rb
|
36
37
|
- lib/sc4ry/exporters/init.rb
|
37
38
|
- lib/sc4ry/helpers.rb
|
38
39
|
- lib/sc4ry/logger.rb
|