Skip to content

Commit cd683aa

Browse files
committed
pr feedback
1 parent 2b7647a commit cd683aa

6 files changed

Lines changed: 33 additions & 35 deletions

File tree

lib/splitclient-rb.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,13 @@
8585
require 'splitclient-rb/engine/models/label'
8686
require 'splitclient-rb/engine/models/treatment'
8787
require 'splitclient-rb/engine/auth_api_client'
88+
require 'splitclient-rb/engine/back_off'
8889
require 'splitclient-rb/engine/push_manager'
8990
require 'splitclient-rb/engine/sync_manager'
9091
require 'splitclient-rb/engine/synchronizer'
9192
require 'splitclient-rb/utilitites'
9293

93-
# SSE
94-
require 'splitclient-rb/sse/event_source/back_off'
94+
# SSE
9595
require 'splitclient-rb/sse/event_source/client'
9696
require 'splitclient-rb/sse/event_source/event_parser'
9797
require 'splitclient-rb/sse/event_source/event_types'
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# frozen_string_literal: false
2+
3+
module SplitIoClient
4+
module Engine
5+
BACKOFF_MAX_ALLOWED = 1.8
6+
class BackOff
7+
def initialize(back_off_base, attempt = 0, max_allowed = BACKOFF_MAX_ALLOWED)
8+
@attempt = attempt
9+
@back_off_base = back_off_base
10+
@max_allowed = max_allowed
11+
end
12+
13+
def interval
14+
interval = 0
15+
interval = (@back_off_base * (2**@attempt)) if @attempt.positive?
16+
@attempt += 1
17+
18+
interval >= @max_allowed ? @max_allowed : interval
19+
end
20+
21+
def reset
22+
@attempt = 0
23+
end
24+
end
25+
end
26+
end

lib/splitclient-rb/engine/push_manager.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def initialize(config, sse_handler, api_key, telemetry_runtime_producer)
88
@sse_handler = sse_handler
99
@auth_api_client = AuthApiClient.new(@config, telemetry_runtime_producer)
1010
@api_key = api_key
11-
@back_off = SplitIoClient::SSE::EventSource::BackOff.new(@config.auth_retry_back_off_base, 1)
11+
@back_off = Engine::BackOff.new(@config.auth_retry_back_off_base, 1)
1212
@telemetry_runtime_producer = telemetry_runtime_producer
1313
end
1414

lib/splitclient-rb/engine/synchronizer.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def fetch_segment(name, target_change_number)
134134

135135
def attempt_segment_sync(name, target_cn, fetch_options, max_retries, retry_delay_seconds, with_backoff)
136136
remaining_attempts = max_retries
137-
backoff = SSE::EventSource::BackOff.new(ON_DEMAND_FETCH_BACKOFF_BASE_SECONDS, 0, ON_DEMAND_FETCH_BACKOFF_MAX_WAIT_SECONDS) if with_backoff
137+
backoff = Engine::BackOff.new(ON_DEMAND_FETCH_BACKOFF_BASE_SECONDS, 0, ON_DEMAND_FETCH_BACKOFF_MAX_WAIT_SECONDS) if with_backoff
138138

139139
loop do
140140
remaining_attempts -= 1
@@ -151,7 +151,7 @@ def attempt_segment_sync(name, target_cn, fetch_options, max_retries, retry_dela
151151

152152
def attempt_splits_sync(target_cn, fetch_options, max_retries, retry_delay_seconds, with_backoff)
153153
remaining_attempts = max_retries
154-
backoff = SSE::EventSource::BackOff.new(ON_DEMAND_FETCH_BACKOFF_BASE_SECONDS, 0, ON_DEMAND_FETCH_BACKOFF_MAX_WAIT_SECONDS) if with_backoff
154+
backoff = Engine::BackOff.new(ON_DEMAND_FETCH_BACKOFF_BASE_SECONDS, 0, ON_DEMAND_FETCH_BACKOFF_MAX_WAIT_SECONDS) if with_backoff
155155

156156
loop do
157157
remaining_attempts -= 1

lib/splitclient-rb/sse/event_source/back_off.rb

Lines changed: 0 additions & 28 deletions
This file was deleted.

spec/sse/event_source/back_off_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
require 'spec_helper'
44
require 'http_server_mock'
55

6-
describe SplitIoClient::SSE::EventSource::BackOff do
7-
subject { SplitIoClient::SSE::EventSource::BackOff }
6+
describe SplitIoClient::Engine::BackOff do
7+
subject { SplitIoClient::Engine::BackOff }
88

99
let(:log) { StringIO.new }
1010

0 commit comments

Comments
 (0)