当前位置: 首页 > 知识库问答 >
问题:

使用Spring boot/java进行并行API调用

越信鸥
2023-03-14

我对Spring的靴子是陌生的,在它们到来的时候学习。我有一个关于并行API调用的快速问题。

我有一个ID数组,我将把它附加到第三方APIendpoint,发出GET请求,聚合数据,并在所有3000个调用完成后从中生成一个文件。

这里的问题是Array的大小为3000,即我预计会进行3000次调用。我觉得使用for循环并迭代超过3000次没有任何意义,而且效率较低。

有谁能给我建议一个最好、最有效的方法吗?

谢谢你

共有1个答案

潘鸿文
2023-03-14

您可以这样做:

List<Integer> ids = IntStream.range(1, 13).boxed().collect(Collectors.toList());
int partitionSize = 5;

for (int i = 0; i < ids.size(); i += partitionSize) {
    List<Integer> currPartition = ids.subList(i, Math.min(i + partitionSize, ids.size()));

    String partitionStr = currPartition.parallelStream() 
            .map(id -> callAPI(id)) // change the aggeragtion according to your needs
            .collect(Collectors.joining(", ")); 

    System.out.println(partitionStr);
}
 类似资料:
  • 我正在使用Python(IPython 我有一个3000个唯一ID的数组,可以从API中提取数据,一次只能使用一个ID调用API。 我希望以某种方式同时拨打3组1000个电话,以加快速度。 最好的方法是什么? 提前感谢任何帮助!

  • 错误 我正在编译SimpleCompiletest.java并得到这个错误。救命啊!!!

  • 我的Spring批处理作业每3分钟运行一次。 步骤应为 每个用户的记录应该并行执行。每个用户最多可以有150k条记录。 每个用户都可以有更新和删除记录。更新记录应在删除之前运行。 更新/删除集应该自己并行运行。但严格来说,所有更新都应该在删除之前完成。 有谁能提出在多个级别实现并行性的最佳方法,并遵循更新和删除级别的顺序吗。我正在研究Spring异步执行器服务、并行流和其他Spring库。Rx,仅

  • 问题内容: 好的,这里是twitter API, 任何人都可以给我有关如何使用Meteor调用此API或链接的任何提示吗 更新:: 这是我尝试过的代码,但未显示任何响应 问题答案: 您要定义checkTwitter Meteor.method 内部 客户范围的块。因为您不能从客户端调用跨域(除非使用jsonp),所以您必须将此块放在一个块中。 顺便说一句,每个文档,在客户端的checkTwitte

  • 我正试图用CakePHP3制作一个api。有了这个api,我将向系统发送一些批量电子邮件的信息。在将api请求存储到databse中之后,我希望返回已收到请求的确认并开始批处理。完成处理后,我想发送一个回调响应来返回处理状态。在我目前的编码系统中,我必须等待完成这个过程。我怎么能并行地做呢? [我不确定实际问题的标题应该是什么,请随意编辑。:)]

  • 问题内容: 我是ReactiveX for Java的新手,我有以下代码块可以进行外部http调用,但它不是异步的。我们正在使用rxjava 1.2和Java 1.8 我有以下在网上找到的代码块,但我无法完全理解它,以及如何将其应用于代码库。 问题答案: 如果我对您的理解正确,则需要使用类似的方法包装现有的内容 代码的简短说明: 它计划在 对成功案例和错误案例的转换最少。它也发生在调度程序上,但是