splitclient-rb 7.1.0.pre.rc6-java → 7.1.0.pre.rc7-java
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2f25e3fbd1430c1ff7d74723cf941e2cc9ed86f
|
4
|
+
data.tar.gz: ba80d8b58f44a6ca5538f2e4925f4eb160a450b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7e168744f18e0851662fa560ffc18b1bcfb07b6a214794e114323334d306fc05821235f348610e63d4defafc26c62dd78dcd375acf22712f4f3f856aa918512
|
7
|
+
data.tar.gz: b38c2181655eed58de5baf76c7e1f091fe13cc83af8576d25173d8eccc2076fcb66ad240cba8ced8bee761d546c04c1f72c171cf90e445194c2158266708ebb7
|
@@ -37,10 +37,16 @@ module SplitIoClient
|
|
37
37
|
|
38
38
|
def schedule_next_token_refresh(time)
|
39
39
|
@config.threads[:schedule_next_token_refresh] = Thread.new do
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
begin
|
41
|
+
@config.logger.debug("schedule_next_token_refresh refresh in #{time} seconds.") if @config.debug_enabled
|
42
|
+
sleep(time)
|
43
|
+
@config.logger.debug('schedule_next_token_refresh starting ...') if @config.debug_enabled
|
44
|
+
stop_sse
|
45
|
+
sleep(1)
|
46
|
+
start_sse
|
47
|
+
rescue StandardError => e
|
48
|
+
@config.logger.debug("schedule_next_token_refresh error: #{e.inspect}") if @config.debug_enabled
|
49
|
+
end
|
44
50
|
end
|
45
51
|
end
|
46
52
|
end
|
@@ -7,7 +7,7 @@ module SplitIoClient
|
|
7
7
|
thread = config.threads[thread_sym]
|
8
8
|
|
9
9
|
unless thread.nil?
|
10
|
-
config.logger.debug("Stopping #{thread_sym} ...") if config.debug_enabled
|
10
|
+
config.logger.debug("Stopping #{thread_sym} thread...") if config.debug_enabled
|
11
11
|
sleep(0.1) while thread.status == 'run'
|
12
12
|
Thread.kill(thread)
|
13
13
|
end
|
@@ -11,8 +11,7 @@ module SplitIoClient
|
|
11
11
|
DEFAULT_READ_TIMEOUT = 70
|
12
12
|
KEEP_ALIVE_RESPONSE = "c\r\n:keepalive\n\n\r\n".freeze
|
13
13
|
|
14
|
-
def initialize(
|
15
|
-
@uri = URI(url)
|
14
|
+
def initialize(config, read_timeout: DEFAULT_READ_TIMEOUT)
|
16
15
|
@config = config
|
17
16
|
@read_timeout = read_timeout
|
18
17
|
@connected = Concurrent::AtomicBoolean.new(false)
|
@@ -22,9 +21,6 @@ module SplitIoClient
|
|
22
21
|
@on = { event: ->(_) {}, connected: ->(_) {}, disconnect: ->(_) {} }
|
23
22
|
|
24
23
|
yield self if block_given?
|
25
|
-
|
26
|
-
connect_thread
|
27
|
-
connect_passenger_forked if defined?(PhusionPassenger)
|
28
24
|
end
|
29
25
|
|
30
26
|
def on_event(&action)
|
@@ -42,8 +38,17 @@ module SplitIoClient
|
|
42
38
|
def close
|
43
39
|
dispatch_disconnect
|
44
40
|
@connected.make_false
|
41
|
+
SplitIoClient::Helpers::ThreadHelper.stop(:connect_stream, @config)
|
45
42
|
@socket&.close
|
46
43
|
@socket = nil
|
44
|
+
@config.threads[:connect_stream] = nil
|
45
|
+
end
|
46
|
+
|
47
|
+
def start(url)
|
48
|
+
@uri = URI(url)
|
49
|
+
|
50
|
+
connect_thread
|
51
|
+
connect_passenger_forked if defined?(PhusionPassenger)
|
47
52
|
end
|
48
53
|
|
49
54
|
def connected?
|
@@ -53,7 +58,10 @@ module SplitIoClient
|
|
53
58
|
private
|
54
59
|
|
55
60
|
def connect_thread
|
56
|
-
@config.threads[:connect_stream] = Thread.new
|
61
|
+
@config.threads[:connect_stream] = Thread.new do
|
62
|
+
@config.logger.info('Starting connect_stream thread ...') if @config.debug_enabled
|
63
|
+
connect_stream
|
64
|
+
end
|
57
65
|
end
|
58
66
|
|
59
67
|
def connect_passenger_forked
|
@@ -70,17 +78,13 @@ module SplitIoClient
|
|
70
78
|
|
71
79
|
while @connected.value
|
72
80
|
begin
|
73
|
-
partial_data = @socket.readpartial(
|
74
|
-
rescue
|
75
|
-
@config.logger.error(
|
81
|
+
partial_data = @socket.readpartial(10_000, timeout: @read_timeout)
|
82
|
+
rescue StandardError => e
|
83
|
+
@config.logger.error(e.inspect) if @config.debug_enabled
|
76
84
|
@connected.make_false
|
77
85
|
@socket&.close
|
78
86
|
@socket = nil
|
79
87
|
connect_stream
|
80
|
-
rescue StandardError => e
|
81
|
-
@config.logger.error(e.inspect)
|
82
|
-
close
|
83
|
-
connect_stream
|
84
88
|
end
|
85
89
|
|
86
90
|
process_data(partial_data)
|
@@ -148,7 +152,7 @@ module SplitIoClient
|
|
148
152
|
|
149
153
|
events
|
150
154
|
rescue StandardError => e
|
151
|
-
@config.logger.
|
155
|
+
@config.logger.error(buffer)
|
152
156
|
@config.logger.error("Error during parsing a event: #{e.inspect}")
|
153
157
|
[]
|
154
158
|
end
|
@@ -11,6 +11,11 @@ module SplitIoClient
|
|
11
11
|
@splits_worker = SplitIoClient::SSE::Workers::SplitsWorker.new(synchronizer, config, splits_repository)
|
12
12
|
@segments_worker = SplitIoClient::SSE::Workers::SegmentsWorker.new(synchronizer, config, segments_repository)
|
13
13
|
@notification_processor = SplitIoClient::SSE::NotificationProcessor.new(config, @splits_worker, @segments_worker)
|
14
|
+
@sse_client = SSE::EventSource::Client.new(@config) do |client|
|
15
|
+
client.on_event { |event| handle_incoming_message(event) }
|
16
|
+
client.on_connected { process_connected }
|
17
|
+
client.on_disconnect { process_disconnect }
|
18
|
+
end
|
14
19
|
|
15
20
|
@on = { connected: ->(_) {}, disconnect: ->(_) {} }
|
16
21
|
|
@@ -19,17 +24,14 @@ module SplitIoClient
|
|
19
24
|
|
20
25
|
def start(token_jwt, channels)
|
21
26
|
url = "#{@config.streaming_service_url}?channels=#{channels}&v=1.1&accessToken=#{token_jwt}"
|
22
|
-
|
23
|
-
@sse_client = SSE::EventSource::Client.new(url, @config) do |client|
|
24
|
-
client.on_event { |event| handle_incoming_message(event) }
|
25
|
-
client.on_connected { process_connected }
|
26
|
-
client.on_disconnect { process_disconnect }
|
27
|
-
end
|
27
|
+
@sse_client.start(url)
|
28
28
|
end
|
29
29
|
|
30
30
|
def stop
|
31
|
-
@sse_client
|
32
|
-
|
31
|
+
@sse_client.close
|
32
|
+
stop_workers
|
33
|
+
rescue StandardError => e
|
34
|
+
@config.logger.debug("SSEHandler stop error: #{e.inspect}") if @config.debug_enabled
|
33
35
|
end
|
34
36
|
|
35
37
|
def connected?
|
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.1.0.pre.
|
4
|
+
version: 7.1.0.pre.rc7
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Split Software
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|