splitclient-rb 7.3.2.pre.rc1 → 7.3.2.pre.rc5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.txt +4 -0
- data/lib/splitclient-rb/engine/sync_manager.rb +7 -2
- data/lib/splitclient-rb/split_factory.rb +10 -4
- data/lib/splitclient-rb/sse/event_source/client.rb +1 -0
- data/lib/splitclient-rb/telemetry/domain/constants.rb +2 -2
- data/lib/splitclient-rb/telemetry/redis/redis_evaluation_producer.rb +4 -4
- data/lib/splitclient-rb/version.rb +1 -1
- 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: 3f59b5e846fb552dd3c8539c57b9584a57d42defa8d070d0412d8940d93dd1f9
|
4
|
+
data.tar.gz: 306cddd0fe1e936fcb5e5c84ee40387e02d345f505bfd781290b6960b12cb5cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c143071980ba8e149e534e6c49b18b90636caa29ed1a7e45f5c54884404f07f95a2d4d505906429bff5a59836f76a6ebdf1887faa7fbcedffcb58216f9484cd
|
7
|
+
data.tar.gz: 7fda481f2d66727baca7905e94508b191b1e01cb379d369067859b248b5754899b58bd7cf9067d6dde1312cc55b7c6254491a346fdef14169423310c359e8d40
|
data/CHANGES.txt
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
CHANGES
|
2
2
|
|
3
|
+
7.3.2 (Dec 3, 2021)
|
4
|
+
- Updated the readiness flow to be more consistent with the other sdks and improve the readiness time.
|
5
|
+
- Updated the name of telemety key latencies in Redis.
|
6
|
+
|
3
7
|
7.3.1 (Jul 26, 2021)
|
4
8
|
- Updated the synchronization flow to be more reliable in the event of an edge case generating delay in cache purge propagation, keeping the SDK cache properly synced.
|
5
9
|
|
@@ -38,6 +38,13 @@ module SplitIoClient
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def start
|
41
|
+
start_thread
|
42
|
+
PhusionPassenger.on_event(:starting_worker_process) { |forked| start_thread if forked } if defined?(PhusionPassenger)
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def start_thread
|
41
48
|
@config.threads[:start_sdk] = Thread.new do
|
42
49
|
sleep(0.5) until @synchronizer.sync_all(false)
|
43
50
|
|
@@ -63,8 +70,6 @@ module SplitIoClient
|
|
63
70
|
end
|
64
71
|
end
|
65
72
|
|
66
|
-
private
|
67
|
-
|
68
73
|
def process_action(action)
|
69
74
|
case action
|
70
75
|
when Constants::PUSH_CONNECTED
|
@@ -28,6 +28,10 @@ module SplitIoClient
|
|
28
28
|
|
29
29
|
raise 'Invalid SDK mode' unless valid_mode
|
30
30
|
|
31
|
+
validate_api_key
|
32
|
+
|
33
|
+
register_factory
|
34
|
+
|
31
35
|
build_telemetry_components
|
32
36
|
|
33
37
|
@splits_repository = SplitsRepository.new(@config)
|
@@ -44,14 +48,16 @@ module SplitIoClient
|
|
44
48
|
|
45
49
|
@client = SplitClient.new(@api_key, repositories, @status_manager, @config, @impressions_manager, @evaluation_producer)
|
46
50
|
@manager = SplitManager.new(@splits_repository, @status_manager, @config)
|
47
|
-
|
48
|
-
validate_api_key
|
49
|
-
|
50
|
-
register_factory
|
51
51
|
end
|
52
52
|
|
53
53
|
def start!
|
54
54
|
return start_localhost_components if @config.localhost_mode
|
55
|
+
|
56
|
+
if @config.consumer?
|
57
|
+
@status_manager.ready!
|
58
|
+
@telemetry_synchronizer.synchronize_config
|
59
|
+
return
|
60
|
+
end
|
55
61
|
|
56
62
|
split_fetcher = SplitFetcher.new(@splits_repository, @api_key, config, @runtime_producer)
|
57
63
|
segment_fetcher = SegmentFetcher.new(@segments_repository, @api_key, config, @runtime_producer)
|
@@ -38,6 +38,7 @@ module SplitIoClient
|
|
38
38
|
def close(action = Constants::PUSH_NONRETRYABLE_ERROR)
|
39
39
|
dispatch_action(action)
|
40
40
|
@connected.make_false
|
41
|
+
SplitIoClient::Helpers::ThreadHelper.stop(:connect_stream, @config)
|
41
42
|
@socket&.close
|
42
43
|
rescue StandardError => e
|
43
44
|
@config.logger.error("SSEClient close Error: #{e.inspect}")
|
@@ -33,8 +33,8 @@ module SplitIoClient
|
|
33
33
|
|
34
34
|
TREATMENT = 'treatment'
|
35
35
|
TREATMENTS = 'treatments'
|
36
|
-
TREATMENT_WITH_CONFIG = '
|
37
|
-
TREATMENTS_WITH_CONFIG = '
|
36
|
+
TREATMENT_WITH_CONFIG = 'treatmentWithConfig'
|
37
|
+
TREATMENTS_WITH_CONFIG = 'treatmentsWithConfig'
|
38
38
|
TRACK = 'track'
|
39
39
|
end
|
40
40
|
end
|
@@ -14,14 +14,14 @@ module SplitIoClient
|
|
14
14
|
|
15
15
|
def record_latency(method, bucket)
|
16
16
|
@adapter.hincrby(latency_key, "#{@sdk_version}/#{@name}/#{@ip}/#{method}/#{bucket}", 1)
|
17
|
-
rescue StandardError =>
|
18
|
-
@config.log_found_exception(__method__.to_s,
|
17
|
+
rescue StandardError => e
|
18
|
+
@config.log_found_exception(__method__.to_s, e)
|
19
19
|
end
|
20
20
|
|
21
21
|
def record_exception(method)
|
22
22
|
@adapter.hincrby(exception_key, "#{@sdk_version}/#{@name}/#{@ip}/#{method}", 1)
|
23
|
-
rescue StandardError =>
|
24
|
-
@config.log_found_exception(__method__.to_s,
|
23
|
+
rescue StandardError => e
|
24
|
+
@config.log_found_exception(__method__.to_s, e)
|
25
25
|
end
|
26
26
|
|
27
27
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: splitclient-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.3.2.pre.
|
4
|
+
version: 7.3.2.pre.rc5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Split Software
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: allocation_stats
|