Hallo zusamen,
wir nutzen einen RateLimiter von Google glaube Guava heisst der.
Angenommen der wird mit 2 initialisiert.
An anderer Stelle erstellen wir einen TaskExecutor mit 20 Threads und müssen da den Ratelimiter nutzen um die Ratelimits des Zielsystems nicht zu überschreiten.
Verstehe ich es richtig dass der Ratelimiter die Threads ausbremst? Also es erstellt zwar 20 Threads aber sendet eben nur so, dass es innerhalb der Ratelimits bleibt?
Soweit ich es nachforsche, ist der Ratelimiter threadsafe.
Wenn ich also mehr parallel auf die API ausspielen will, muss auch das Ratelimite erhöht werden?
wir nutzen einen RateLimiter von Google glaube Guava heisst der.
Angenommen der wird mit 2 initialisiert.
Java:
this.rateLimiter = RateLimiter.create(2);
An anderer Stelle erstellen wir einen TaskExecutor mit 20 Threads und müssen da den Ratelimiter nutzen um die Ratelimits des Zielsystems nicht zu überschreiten.
Java:
ExecutorService taskExecutor = Executors.newFixedThreadPool(threads);
taskExecutor.execute(() -> {
sendApi(ratelimiter); //der vorher initailisierte Ratelimiter
});
try {
taskExecutor.shutdown();
taskExecutor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
Verstehe ich es richtig dass der Ratelimiter die Threads ausbremst? Also es erstellt zwar 20 Threads aber sendet eben nur so, dass es innerhalb der Ratelimits bleibt?
Soweit ich es nachforsche, ist der Ratelimiter threadsafe.
Wenn ich also mehr parallel auf die API ausspielen will, muss auch das Ratelimite erhöht werden?