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

spring boot多线程聚合,反之亦然

祁承嗣
2023-03-14

我们正在构建Spring启动应用程序。目前,Rest控制器正在以顺序方式调用多个网络服务。现在我们需要并行执行这些调用,并根据以下条件返回响应

>

  • 聚合-等待所有并行Web服务调用完成,然后聚合响应并返回相同的响应。

    无聚合-返回响应,以最先完成的webservice调用为准,并放弃/取消/中断其余正在进行的调用。

    我做了一些研究,发现了ExecutorService,但不确定这是否适用于这两种情况,因为我对Spring Boot非常陌生。

    请让我知道是否有办法实现同样的目标。

  • 共有1个答案

    卓胜
    2023-03-14

    在我看来,ExecutoService是个好主意,你应该向ExecutoService提交一个Callable,这样你就可以得到一个未来的

    要处理情况#1,您应该为所有Futures调用isDone()方法的逻辑和返回值,要处理情况#2,您应该执行逻辑或之类的操作。

    以下是参考资料-可调用

    我的建议不是针对Spring Boot,而是来自核心Java背景。这将让您开始,然后您可以优化方法和切换API。

    希望有帮助!!

     类似资料:
    • 我有下表: 我希望KEY_1和KEY_2的组合是唯一的,反之亦然。 这样,我可以使KEY_1和KEY_2之间的组合唯一,但我也希望相反。 示例: 我无法再次插入此值,反之亦然。 这应该是无效的(因为它是同一对密钥): 谢啦

    • 本文向大家介绍Scala将Scala集合转换为Java集合,反之亦然,包括了Scala将Scala集合转换为Java集合,反之亦然的使用技巧和注意事项,需要的朋友参考一下 示例 当您需要将集合传递到Java方法中时: 如果Java代码返回Java集合,则可以通过类似的方式将其转换为Scala集合: 请注意,这些是装饰器,因此它们仅将基础集合包装在Scala或Java集合接口中。因此,通话.asJa

    • 问题内容: 我想用字符串中的下划线替换空格以创建漂亮的URL。因此,例如: 我在Django中使用Python。可以使用正则表达式解决吗? 问题答案: 你不需要正则表达式。Python有一个内置的字符串方法可以满足你的需要:

    • 我使用Mapstruct来处理将一个POJO映射到另一个POJO的样板代码。 以下是DTO: 这是映射的POJO: 我正在寻找一种优雅的方法来处理和之间的映射。目前,我正在使用注释的属性。由于引用了我使用的是“周期映射”示例中的。 该界面还包含一个方法映射到,名称为。 有没有更优雅的方法来实现将不可编辑的转换为?我的方法可行,但也有缺点。例如,重构不能识别字符串中的代码片段。

    • 问题内容: 有没有简单的方法可以将(Java 8中引入的)转换为对象? “简单”是指比这更简单: 对我来说似乎有点尴尬。 由于我们仅对日期部分感兴趣,并且两个对象都没有时区信息,因此为什么要明确引入时区?转换应隐式采用午夜时间和系统默认时区。 问题答案: 其实有。有一个静态方法的valueOf在这不正是那个对象。所以我们有 就是这样。没有明确设置时区,因为本地时区是隐式获取的。 从文档: 提供的L

    • 问题内容: 我需要转换一个随机生成的盐值并将其存储在数据库中。为了将其存储在数据库中,我将其转换为字符串。然后,为了检索原始值,我将其转换回字节。但是两个值都不匹配。我已经尝试过“ UTF-8”,“ UTF-16”,BASE64Encoder。 上面代码的输出(执行两次): 和 问题答案: 在上面编写代码时,先打印,然后实际打印的是数组对象方法的输出,这只是默认的Object 方法。所以我看不出您