diff --git a/extended/pom.xml b/extended/pom.xml
index 5b207ab2b2..58db0cbc17 100644
--- a/extended/pom.xml
+++ b/extended/pom.xml
@@ -37,6 +37,11 @@
guava
25.1-jre
+
+ com.github.vladimir-bukhtoyarov
+ bucket4j-core
+ ${bucket4jVersion}
+
junit
@@ -130,5 +135,6 @@
${java.version}
${java.version}
1.7.7
+ 4.4.1
diff --git a/extended/src/main/java/io/kubernetes/client/extended/workqueue/DefaultRateLimitingQueue.java b/extended/src/main/java/io/kubernetes/client/extended/workqueue/DefaultRateLimitingQueue.java
index ad563e72f5..6f6202fd2f 100644
--- a/extended/src/main/java/io/kubernetes/client/extended/workqueue/DefaultRateLimitingQueue.java
+++ b/extended/src/main/java/io/kubernetes/client/extended/workqueue/DefaultRateLimitingQueue.java
@@ -1,22 +1,21 @@
package io.kubernetes.client.extended.workqueue;
-import java.time.Duration;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import io.kubernetes.client.extended.workqueue.ratelimiter.DefaultControllerRateLimiter;
+import io.kubernetes.client.extended.workqueue.ratelimiter.RateLimiter;
import java.util.concurrent.ExecutorService;
/** The default rate limiting queue implementation. */
public class DefaultRateLimitingQueue extends DefaultDelayingQueue
implements RateLimitingQueue {
- private RateLimiter rateLimiter;
+ private RateLimiter rateLimiter;
public DefaultRateLimitingQueue(ExecutorService waitingWorker) {
super(waitingWorker);
- this.rateLimiter = new ExponentialRateLimiter();
+ this.rateLimiter = new DefaultControllerRateLimiter<>();
}
- public DefaultRateLimitingQueue(ExecutorService waitingWorker, RateLimiter rateLimiter) {
+ public DefaultRateLimitingQueue(ExecutorService waitingWorker, RateLimiter rateLimiter) {
super(waitingWorker);
this.rateLimiter = rateLimiter;
}
@@ -27,7 +26,7 @@ public int numRequeues(T item) {
}
@Override
- public void forget(Object item) {
+ public void forget(T item) {
rateLimiter.forget(item);
}
@@ -35,46 +34,4 @@ public void forget(Object item) {
public void addRateLimited(T item) {
super.addAfter(item, rateLimiter.when(item));
}
-
- public static class ExponentialRateLimiter implements RateLimiter {
-
- Duration baseDelay;
- Duration maxDelay;
-
- private Map