diff --git a/rest-helix/src/main/java/com/github/twitch4j/helix/TwitchHelixBuilder.java b/rest-helix/src/main/java/com/github/twitch4j/helix/TwitchHelixBuilder.java index 11f900286..4e95520da 100644 --- a/rest-helix/src/main/java/com/github/twitch4j/helix/TwitchHelixBuilder.java +++ b/rest-helix/src/main/java/com/github/twitch4j/helix/TwitchHelixBuilder.java @@ -14,6 +14,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.experimental.Wither; import lombok.extern.slf4j.Slf4j; /** @@ -30,6 +31,12 @@ public class TwitchHelixBuilder extends TwitchAPIBuilder { */ private String baseUrl = "https://api.twitch.tv/helix"; + /** + * Default Timeout + */ + @Wither + private Integer timeout = 5000; + /** * Initialize the builder * @@ -62,8 +69,8 @@ public TwitchHelix build() { .logger(new Logger.ErrorLogger()) .errorDecoder(new TwitchHelixErrorDecoder(new JacksonDecoder())) .requestInterceptor(new TwitchClientIdInterceptor(this)) - .retryer(new Retryer.Default(1, 10000, 3)) - .options(new Request.Options(5000, 15000)) + .options(new Request.Options(timeout / 3, timeout)) + .retryer(new Retryer.Default(500, timeout, 2)) .target(TwitchHelix.class, baseUrl); // register with serviceMediator diff --git a/rest-kraken/src/main/java/com/github/twitch4j/kraken/TwitchKrakenBuilder.java b/rest-kraken/src/main/java/com/github/twitch4j/kraken/TwitchKrakenBuilder.java index a6025d960..add78f8e1 100644 --- a/rest-kraken/src/main/java/com/github/twitch4j/kraken/TwitchKrakenBuilder.java +++ b/rest-kraken/src/main/java/com/github/twitch4j/kraken/TwitchKrakenBuilder.java @@ -13,6 +13,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.experimental.Wither; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -26,6 +27,12 @@ public class TwitchKrakenBuilder extends TwitchAPIBuilder { */ private String baseUrl = "https://api.twitch.tv/kraken"; + /** + * Default Timeout + */ + @Wither + private Integer timeout = 5000; + /** * Initialize the builder * @@ -50,8 +57,8 @@ public TwitchKraken build() { .errorDecoder(new TwitchKrakenErrorDecoder(new JacksonDecoder())) .logLevel(Logger.Level.BASIC) .requestInterceptor(new TwitchClientIdInterceptor(this)) - .retryer(new Retryer.Default(1, 10000, 3)) - .options(new Request.Options(5000, 15000)) + .options(new Request.Options(timeout / 3, timeout)) + .retryer(new Retryer.Default(500, timeout, 2)) .target(TwitchKraken.class, baseUrl); // register with serviceMediator diff --git a/twitch4j/src/main/java/com/github/twitch4j/TwitchClientBuilder.java b/twitch4j/src/main/java/com/github/twitch4j/TwitchClientBuilder.java index 9c591e1ab..50b0d01a3 100644 --- a/twitch4j/src/main/java/com/github/twitch4j/TwitchClientBuilder.java +++ b/twitch4j/src/main/java/com/github/twitch4j/TwitchClientBuilder.java @@ -41,6 +41,12 @@ public class TwitchClientBuilder extends TwitchAPIBuilder { @Wither private String redirectUrl = "http://localhost"; + /** + * Default Timeout + */ + @Wither + private Integer timeout = 5000; + /** * Enabled: Helix */ @@ -152,6 +158,7 @@ public TwitchClient build() { .withClientSecret(getClientSecret()) .withEventManager(eventManager) .withUserAgent(userAgent) + .withTimeout(timeout) .build(); } @@ -163,6 +170,7 @@ public TwitchClient build() { .withClientSecret(getClientSecret()) .withEventManager(eventManager) .withUserAgent(userAgent) + .withTimeout(timeout) .build(); }