【问题标题】:Apache HttpClient: Limit total calls per secondApache HttpClient:限制每秒总调用次数
【发布时间】:2017-05-19 10:13:00
【问题描述】:

我需要将每秒 HTTP 调用的数量限制为最多 10 个。这是根据允许的配额。

HttpClient 有这方面的功能吗?或者任何自定义实现也可以。

【问题讨论】:

    标签: java httpclient metering


    【解决方案1】:

    你可以试试ScheduledThreadPoolExecutor

    来自 javadoc:

    可以额外安排命令运行的 ThreadPoolExecutor 在给定的延迟之后,或定期执行

    您只需使用schedule 方法并将Runnable 传递给它,Runnable 通过HttpClient 拨打您的电话。您可以安排您的 Runnable 每秒运行 10 次,或根据需要运行。 Executor 将通过HttpClient 对您的呼叫进行排队,并且每秒最多只能运行 10 个。

    【讨论】:

    • 我的场景中的 HTTP 调用不能并发。它们都需要一个接一个地串联。使用 ScheduledThreadPoolExecutor 将并行运行不同的线程。
    • constructor 参数maxPoolSize 设置为1。不会有并发线程。或者拨打setMaxPoolSize()
    猜你喜欢
    • 2018-08-26
    • 2012-02-14
    • 1970-01-01
    • 2011-08-27
    • 2017-07-04
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多