Skip to content

Commit 66de222

Browse files
Pr comments
1 parent 22cb0f0 commit 66de222

File tree

2 files changed

+29
-30
lines changed

2 files changed

+29
-30
lines changed

client/src/main/java/io/split/client/SplitClientConfig.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public class SplitClientConfig {
4646
private final int _streamingReconnectBackoffBase;
4747
private final String _authServiceURL;
4848
private final String _streamingServiceURL;
49-
private final int _streamingRetryDelay;
49+
private final int _onDemandFetchRetryDelayMs;
5050

5151
// Proxy configs
5252
private final HttpHost _proxy;
@@ -91,7 +91,7 @@ private SplitClientConfig(String endpoint,
9191
int streamingReconnectBackoffBase,
9292
String authServiceURL,
9393
String streamingServiceURL,
94-
int streamingRetryDelay) {
94+
int onDemandFetchRetryDelayMs) {
9595
_endpoint = endpoint;
9696
_eventsEndpoint = eventsEndpoint;
9797
_featuresRefreshRate = pollForFeatureChangesEveryNSeconds;
@@ -122,7 +122,7 @@ private SplitClientConfig(String endpoint,
122122
_streamingReconnectBackoffBase = streamingReconnectBackoffBase;
123123
_authServiceURL = authServiceURL;
124124
_streamingServiceURL = streamingServiceURL;
125-
_streamingRetryDelay = streamingRetryDelay;
125+
_onDemandFetchRetryDelayMs = onDemandFetchRetryDelayMs;
126126

127127
Properties props = new Properties();
128128
try {
@@ -251,7 +251,7 @@ public String streamingServiceURL() {
251251
return _streamingServiceURL;
252252
}
253253

254-
public int streamingRetryDelay() {return _streamingRetryDelay;}
254+
public int streamingRetryDelay() {return _onDemandFetchRetryDelayMs;}
255255

256256
public static final class Builder {
257257

@@ -288,7 +288,7 @@ public static final class Builder {
288288
private int _streamingReconnectBackoffBase = 1;
289289
private String _authServiceURL = "https://auth.split.io/api/auth";
290290
private String _streamingServiceURL = "https://streaming.split.io/sse";
291-
private int _streamingRetryDelay = 50;
291+
private int _onDemandFetchRetryDelayMs = 50;
292292

293293
public Builder() {
294294
}
@@ -682,11 +682,11 @@ public Builder streamingServiceURL(String streamingServiceURL) {
682682

683683
/**
684684
* Set Streaming retry delay.
685-
* @param streamingRetryDelay
685+
* @param onDemandFetchRetryDelayMs
686686
* @return
687687
*/
688-
public Builder streamingRetryDelay(int streamingRetryDelay) {
689-
_streamingRetryDelay = streamingRetryDelay;
688+
public Builder streamingRetryDelay(int onDemandFetchRetryDelayMs) {
689+
_onDemandFetchRetryDelayMs = onDemandFetchRetryDelayMs;
690690
return this;
691691
}
692692

@@ -760,7 +760,7 @@ public SplitClientConfig build() {
760760
throw new IllegalArgumentException("streamingServiceURL must not be null");
761761
}
762762

763-
if(_streamingRetryDelay <= 0) {
763+
if(_onDemandFetchRetryDelayMs <= 0) {
764764
throw new IllegalStateException("streamingRetryDelay must be > 0");
765765
}
766766

@@ -795,7 +795,7 @@ public SplitClientConfig build() {
795795
_streamingReconnectBackoffBase,
796796
_authServiceURL,
797797
_streamingServiceURL,
798-
_streamingRetryDelay);
798+
_onDemandFetchRetryDelayMs);
799799
}
800800
}
801801
}

client/src/main/java/io/split/engine/common/SynchronizerImp.java

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,20 @@ public class SynchronizerImp implements Synchronizer {
2727
private final ScheduledExecutorService _syncAllScheduledExecutorService;
2828
private final SplitCache _splitCache;
2929
private final SegmentCache _segmentCache;
30-
private final int _streamingRetryDelay;
30+
private final int _onDemandFetchRetryDelayMs;
3131

3232
public SynchronizerImp(SplitSynchronizationTask splitSynchronizationTask,
3333
SplitFetcher splitFetcher,
3434
SegmentSynchronizationTask segmentSynchronizationTaskImp,
3535
SplitCache splitCache,
3636
SegmentCache segmentCache,
37-
int streamingRetryDelay) {
37+
int onDemandFetchRetryDelayMs) {
3838
_splitSynchronizationTask = checkNotNull(splitSynchronizationTask);
3939
_splitFetcher = checkNotNull(splitFetcher);
4040
_segmentSynchronizationTaskImp = checkNotNull(segmentSynchronizationTaskImp);
4141
_splitCache = checkNotNull(splitCache);
4242
_segmentCache = checkNotNull(segmentCache);
43-
_streamingRetryDelay = checkNotNull(streamingRetryDelay);
43+
_onDemandFetchRetryDelayMs = checkNotNull(onDemandFetchRetryDelayMs);
4444

4545
ThreadFactory splitsThreadFactory = new ThreadFactoryBuilder()
4646
.setDaemon(true)
@@ -73,14 +73,23 @@ public void stopPeriodicFetching() {
7373

7474
@Override
7575
public void refreshSplits(long targetChangeNumber) {
76-
int retries = 1;
77-
while(targetChangeNumber > _splitCache.getChangeNumber() && retries <= RETRIES_NUMBER) {
78-
checkNumberAttepmt(retries);
76+
int retries = RETRIES_NUMBER;
77+
while(true) {
78+
retries--;
7979
_splitFetcher.forceRefresh(true);
80-
retries++;
81-
}
82-
if(retries > 1) {
83-
_log.debug("Refresh completed in %s attempts.", retries);
80+
if (targetChangeNumber <= _splitCache.getChangeNumber()) {
81+
_log.debug("Refresh completed in %s attempts.", RETRIES_NUMBER - retries);
82+
return;
83+
} else if (retries <= 0) {
84+
_log.warn("No changes fetched after %s attempts.", RETRIES_NUMBER);
85+
return;
86+
}
87+
try {
88+
Thread.sleep(_onDemandFetchRetryDelayMs);
89+
} catch (InterruptedException e) {
90+
Thread.currentThread().interrupt();
91+
_log.debug("Error trying to sleep current Thread.");
92+
}
8493
}
8594
}
8695

@@ -107,14 +116,4 @@ public void refreshSegment(String segmentName, long changeNumber) {
107116
retries++;
108117
}
109118
}
110-
111-
private void checkNumberAttepmt(int retry) {
112-
if(retry > 1) {
113-
try {
114-
Thread.sleep(_streamingRetryDelay);
115-
} catch (InterruptedException e) {
116-
e.printStackTrace();
117-
}
118-
}
119-
}
120119
}

0 commit comments

Comments
 (0)