java - 对 TwilioRestClient 创建 API 的并发请求给出 http 409

标签 java rest http concurrency twilio

我正在尝试使用 TwilioRestClient API 来创建绑定(bind)。我必须从文件中读取输入,然后为每个输入创建绑定(bind)。由于有数千条记录,我尝试了并行处理。但这有时会给我 http 409 。如果我不使用并行处理,我将获得 100% 的成功。但当我增加线程数时,成功百分比会降低。

Callable task = () -> {

// Call to TwilioRestClient create bindings goes here.
}

ForkJoinPool pool = new ForkJoinPool(8); //Utilising 8 cores
List<Bindings> bindings = (List<Bindings>) pool.submit(task).get();

我希望为从文件读取并传递给 API 的所有记录创建绑定(bind)。当尝试使用 8 个核心进行并行处理时,1000 条记录中约有 800 条成功。当我减少核心数量时,成功率就会增加。我做错了什么?

最佳答案

这里是 Twilio 开发者布道者。

Twilio API 有 concurrency limit of 100 concurrent connections 。我的猜测是,虽然我对 Java 中的并发和线程处理没有太多经验,但随着线程数的增加,您会遇到并发限制,这就是请求失败的原因。

我建议回拨,直到并发连接数少于 100 个,这应该会导致您发出 100% 成功的请求。不过,抱歉,我无法建议您如何在代码库中实现这一目标。

关于java - 对 TwilioRestClient 创建 API 的并发请求给出 http 409,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024981/

相关文章:

jquery - HTTP POST 正文的 MIME 与 JSON

rest - RESTful 调用应如何返回失败消息?

java - 即使在添加 jackson-modules-java8 依赖项后也找不到 Jackson JavaTimeModule?

java - android tcp客户端文件接收

java - 在长 java 字符串中查找行号和列号

angular - 是否可以在 Angular 中将 2 个 http 响应合并为一个?

angular - header http 未传送到我的 API

java.lang.IllegalStateException 连接到数据库的目标主机不能为空

java - 处理 REST API 中的特殊字符

xml - 为 FedEx Web 服务创建 HTTP Post 调用