我从几个不同的API获取数据。它们是Rest和肥皂网络服务。我有一个ID,我一个接一个地传递给每个API,并获得数据作为回报。但是每个API需要几秒钟才能返回结果,因此我创建的最终响应对象需要太多时间。
我的应用程序是Spring4REST服务。并行调用所有这些API的最佳方法是什么,以便将响应时间减少到尽可能少的程度。
谢谢
丹尼尔的回答是对的,但我想再补充一点。如果你想对你的结果做些什么,但不想用Future#get阻止,那么我建议你使用完全未来类。
它将允许您添加各种操作,这些操作将在完成时触发。还有一篇非常好的文章介绍了如何将CompletableFuture与Spring的@async
注释结合使用。这里是链接。Spring异步的完全期货
可以使用@Async注释。你可以在这里找到一个例子
Spring批处理-需要帮助以并行和多个节点运行批处理作业的独立步骤。一个spring批处理作业(JobA),包含三个步骤[步骤A(在compute1中)和步骤B(在compute2中)以及步骤C] StepA和StepB是独立的步骤,占用大量内存,因此不能在同一计算节点/JVM上并行运行。要使StepC同时启动(StepA和StepB),需要成功完成。我不想为了节省时间而依次执行步骤A和步骤B。
问题内容: 这个问题已经在这里有了答案 : 如何并行化一个简单的Python循环? (13个回答) 3年前关闭。 我试图在多个实例并行引用同一方法,其中实例引用同一对象。 很抱歉造成这种混淆。 具体来说,我想将以下for循环更改为并行执行: 可能吗? 未来读者注意事项: 上面的代码不是迭代Python中实例集合的方法。这是一种以顺序(即非并行)方式进行迭代的方法: 问题答案: 好的,让我们一起做。
问题内容: node.js的事件驱动编程模型使协调程序流变得有些棘手。 简单的顺序执行变成嵌套的回调,这很容易(尽管有些麻烦以至于要写下来)。 但是并行执行如何?假设您有三个可以并行运行的任务A,B,C,当它们完成后,您要将其结果发送给任务D。 对于前叉/连接模型,这将是 fork A fork B fork C join A,B,C, run D 我该如何在node.js中编写它?是否有最佳做法
我需要在现有的fat代码中创建一个服务,以从4个API中获取结果,我需要合并它们并重新格式化每个响应,但由于4个调用,我不知道如何同时进行,所以速度非常慢。我也无法更改main来添加< code>Runnable或main中的此类执行器,因为它可能会对另一个代码产生滚雪球效应。 因此,目前,我制作了一个控制器来处理请求,一个从用户那里获取请求并调用5种不同服务中间件(SM)功能的服务。每个SM函数
someController.java
我目前正在为一个groovy应用程序编写单元testcase 有人能告诉我这是不是嘲弄斯波克的两个电话的正确方法?如果没有,那么请引导我走向正确的解决方案。