0

我正在尝试使用 TwilioRestClient API 创建绑定。我必须从文件中读取输入,然后为每个输入创建绑定。由于有数千条记录,我尝试了并行处理。但这有时会给我 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 的所有记录创建绑定。当尝试使用 8 个内核进行并行处理时,在 1000 条记录中,大约有 800 条成功。当我减少核心数量时,成功率会增加。我究竟做错了什么?

4

1 回答 1

0

Twilio 开发人员布道者在这里。

Twilio API 的并发限制为 100 个并发连接。我的猜测是,尽管我对 Java 中的并发和线程没有太多经验,但随着线程数的增加,您会遇到并发限制,这就是请求失败的原因。

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

于 2019-07-15T06:58:39.380 回答