|
|
|
@ -31,7 +31,9 @@ import java.util.concurrent.ConcurrentMap; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
import java.util.concurrent.Executors; |
|
|
|
import java.util.concurrent.LinkedBlockingDeque; |
|
|
|
import java.util.concurrent.LinkedBlockingQueue; |
|
|
|
import java.util.concurrent.ScheduledExecutorService; |
|
|
|
import java.util.concurrent.ThreadPoolExecutor; |
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
import java.util.concurrent.TimeoutException; |
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
@ -70,7 +72,7 @@ public abstract class AbstractBufferedRateExecutor<T extends AsyncTask, F extend |
|
|
|
this.concurrencyLimit = concurrencyLimit; |
|
|
|
this.queue = new LinkedBlockingDeque<>(queueLimit); |
|
|
|
this.dispatcherExecutor = Executors.newFixedThreadPool(dispatcherThreads); |
|
|
|
this.callbackExecutor = Executors.newFixedThreadPool(callbackThreads); |
|
|
|
this.callbackExecutor = new ThreadPoolExecutor(callbackThreads, 50, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); |
|
|
|
this.timeoutExecutor = Executors.newSingleThreadScheduledExecutor(); |
|
|
|
this.perTenantLimitsEnabled = perTenantLimitsEnabled; |
|
|
|
this.perTenantLimitsConfiguration = perTenantLimitsConfiguration; |
|
|
|
|