I need to limit the number of HTTP calls per second to max 10. This is as per the allowed quota.
Does HttpClient has some feature for this? Or any custom implementation would also do.
You might try the ScheduledThreadPoolExecutor.
From the javadoc:
A ThreadPoolExecutor that can additionally schedule commands to run after a given delay, or to execute periodically
You would simply use the schedule
method and pass it a Runnable
, where the Runnable
makes your call via the HttpClient
. You could schedule your Runnable
to run 10 times per second, or as needed. The Executor
will queue up your calls over the HttpClient
, and only run a max of 10 per second.