Skip to content

Commit

Permalink
Binance rate limiter customizations
Browse files Browse the repository at this point in the history
  • Loading branch information
milczarekIT committed Apr 6, 2021
1 parent 68357af commit 3c420f3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public static ResilienceRegistries createRegistries() {
RateLimiterConfig.from(registries.rateLimiters().getDefaultConfig())
.limitRefreshPeriod(Duration.ofMinutes(1))
.limitForPeriod(1100)
.timeoutDuration(Duration.ofSeconds(30))
.timeoutDuration(Duration.ofSeconds(60))
.build());
registries
.rateLimiters()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
import java.math.BigDecimal;
import java.util.List;
import java.util.Optional;

import io.github.resilience4j.ratelimiter.RateLimiter;
import lombok.extern.slf4j.Slf4j;
import org.knowm.xchange.binance.BinanceAdapters;
import org.knowm.xchange.binance.BinanceAuthenticated;
import org.knowm.xchange.binance.BinanceExchange;
Expand All @@ -22,6 +25,7 @@
import org.knowm.xchange.client.ResilienceRegistries;
import org.knowm.xchange.currency.CurrencyPair;

@Slf4j
public class BinanceTradeServiceRaw extends BinanceBaseService {

protected BinanceTradeServiceRaw(
Expand Down Expand Up @@ -186,6 +190,13 @@ public List<BinanceOrder> allOrders(CurrencyPair pair, Long orderId, Integer lim
public List<BinanceTrade> myTrades(
CurrencyPair pair, Integer limit, Long startTime, Long endTime, Long fromId)
throws BinanceException, IOException {
final RateLimiter rateLimiter = rateLimiter(REQUEST_WEIGHT_RATE_LIMITER);
final RateLimiter.Metrics metrics = rateLimiter.getMetrics();
log.debug("Rate limiter: {}, availablePermissions: {}, numberOfWaitingThreads: {}, config: {}",
rateLimiter.getName(),
metrics.getAvailablePermissions(),
metrics.getNumberOfWaitingThreads(),
rateLimiter.getRateLimiterConfig());
return decorateApiCall(
() ->
binance.myTrades(
Expand All @@ -199,7 +210,7 @@ public List<BinanceTrade> myTrades(
apiKey,
signatureCreator))
.withRetry(retry("myTrades"))
.withRateLimiter(rateLimiter(REQUEST_WEIGHT_RATE_LIMITER), 5)
.withRateLimiter(rateLimiter, 5)
.call();
}

Expand Down

0 comments on commit 3c420f3

Please sign in to comment.