Skip to content

Commit c1c27c6

Browse files
committed
added retries
1 parent 00bfeea commit c1c27c6

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/main/java/com/twitter/clientlib/stream/TwitterStream.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,18 @@ public class TwitterStream {
4646

4747
private TweetsStreamExecutor executor;
4848

49+
private int retries;
50+
4951
public TwitterStream() {
52+
init();
53+
}
54+
55+
public TwitterStream(int retries) {
56+
this.retries = retries;
57+
init();
58+
}
59+
60+
private void init() {
5061
initBasePath();
5162
tweets.setClient(apiClient);
5263
}
@@ -55,6 +66,10 @@ public void setTwitterCredentials(TwitterCredentialsBearer credentials) {
5566
apiClient.setTwitterCredentials(credentials);
5667
}
5768

69+
public void setRetries(int retries) {
70+
this.retries = retries;
71+
}
72+
5873
public void addListener(TweetsStreamListener listener) {
5974
listeners.add(listener);
6075
}
@@ -65,7 +80,7 @@ public void removeListener(TweetsStreamListener listener) {
6580

6681
public void sampleStream(StreamQueryParameters streamParameters) {
6782
try {
68-
BufferedSource streamResult = tweets.sampleStream(streamParameters);
83+
BufferedSource streamResult = tweets.sampleStream(retries == 0 ? 1 : retries, streamParameters);
6984
executor = new TweetsStreamExecutor(streamResult);
7085
listeners.forEach(executor::addListener);
7186
executor.start();
@@ -78,7 +93,7 @@ public void sampleStream(StreamQueryParameters streamParameters) {
7893
/* for this error twitter indicates that to implement a reconnection mechanism
7994
* see: https://developer.twitter.com/en/docs/twitter-api/tweets/volume-streams/integrate/handling-disconnections
8095
*/
81-
throw new TooManyRequestsException("Too many requests. Service responded with 429 status code");
96+
throw new TooManyRequestsException("Too many requests. Service responded with 429 status code. Consider setting 'retries' or increasing its value");
8297
}
8398
throw new StreamException("An exception occurred during stream execution ",e);
8499
}

src/test/java/com/twitter/clientlib/stream/TwitterStreamTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class TwitterStreamTest extends ApiTester {
4747
public static void beforeAll() {
4848
twitterStream = new TwitterStream();
4949
twitterStream.setTwitterCredentials(new TwitterCredentialsBearer(System.getenv("TWITTER_BEARER_TOKEN")));
50+
twitterStream.setRetries(4);
5051
}
5152

5253
@BeforeEach

0 commit comments

Comments
 (0)