Каким должен быть размер пула потоков исполнителя при использовании ограничителя скорости Guava 5 разрешений в секунду?

#java #multithreading #backend #guava

Вопрос:

Я создал исполнителя с фиксированным размером пула потоков 50, когда мне нужно было обработать в общей сложности 1500 задач, используя ограничитель скорости гуавы(5 разрешений в секунду). Но у меня все еще есть 429 для некоторых задач. Задачи означают вызов стороннего API.

Как я могу совершать строго 5 звонков в секунду в сторонний API?

Комментарии:

1. Может быть, существует некоторая задержка в сети, из-за которой первый вызов следующего пакета учитывается в текущем пакете? Вы все еще получаете 429 с 4 разрешениями в секунду?

2. @sp00m Спасибо, что он отлично работает с одним меньше, чем ограничение скорости. Можете ли вы сказать, каким должен быть идеальный размер исполнителя пула потоков для такого сценария.

3. Вам нужно будет протестировать его, но для этого вам, скорее всего, не понадобится много потоков, так как выполнение запросов API обычно занимает меньше секунды.

4. @dan1st получил это, спасибо