Java асинхронный SmoothRateLimiter - PullRequest
0 голосов
/ 04 мая 2019

Мне всегда было интересно, почему реализация SmoothRateLimiter в Гуаве должна была синхронизироваться (получить).

Это означает, что, если у меня десятки или сотни RateLimiters, мне понадобятся десятки или сотни заблокированных потоков, что кажется не идеальным.

В идеале мы могли бы иметь что-то вроде

for (Config configsPerRatelimiter: configsPerRatelimiters){
    new RateLimiter(configsPerRatelimiter, sharedScheduler, sharedExecutor).submit(myTask)
}

Планировщик (однопоточный) и исполнитель (пул потоков) в этой точке могут быть общими для всех RateLimiters.

Я не смог найти онлайн-реализацию, которая могла бы решить эту проблему без блокировки.

...