【发布时间】:2017-05-19 10:13:00
【问题描述】:
我需要将每秒 HTTP 调用的数量限制为最多 10 个。这是根据允许的配额。
HttpClient 有这方面的功能吗?或者任何自定义实现也可以。
【问题讨论】:
标签: java httpclient metering
我需要将每秒 HTTP 调用的数量限制为最多 10 个。这是根据允许的配额。
HttpClient 有这方面的功能吗?或者任何自定义实现也可以。
【问题讨论】:
标签: java httpclient metering
你可以试试ScheduledThreadPoolExecutor。
来自 javadoc:
可以额外安排命令运行的 ThreadPoolExecutor 在给定的延迟之后,或定期执行
您只需使用schedule 方法并将Runnable 传递给它,Runnable 通过HttpClient 拨打您的电话。您可以安排您的 Runnable 每秒运行 10 次,或根据需要运行。 Executor 将通过HttpClient 对您的呼叫进行排队,并且每秒最多只能运行 10 个。
【讨论】:
maxPoolSize 设置为1。不会有并发线程。或者拨打setMaxPoolSize()。