Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中同时调用多个API(异步)并在一个对象中收集数据_Java_Spring_Rest_Spring Boot - Fatal编程技术网

如何在java中同时调用多个API(异步)并在一个对象中收集数据

如何在java中同时调用多个API(异步)并在一个对象中收集数据,java,spring,rest,spring-boot,Java,Spring,Rest,Spring Boot,我需要构建一个API,它将异步调用6个API,并将所有数据收集到一个对象中 在收集所有数据之后,它将调用其他api来持久化数据库中的数据 请让我知道哪个框架最适合这个要求 大多数人喜欢用java编写 提前感谢。我不确定这是否是您要找的,但是如果您的6个异步调用可以被放入实现可调用接口的类中,那么您可以创建一个列表并将其传递给executor服务函数。见下文: 创建列表并将可调用任务添加到该列表中 List<Callable<String>> callableTasks =

我需要构建一个API,它将异步调用6个API,并将所有数据收集到一个对象中

在收集所有数据之后,它将调用其他api来持久化数据库中的数据

请让我知道哪个框架最适合这个要求

大多数人喜欢用java编写


提前感谢。

我不确定这是否是您要找的,但是如果您的6个异步调用可以被放入实现可调用接口的类中,那么您可以创建一个列表并将其传递给executor服务函数。见下文:

  • 创建列表并将可调用任务添加到该列表中

    List<Callable<String>> callableTasks = new ArrayList<>();
    
    callableTasks.add(callableTask);
    
    callableTasks.add(callableTask);
    
    callableTasks.add(callableTask);
    
    List callableTasks=new ArrayList();
    callableTasks.add(callableTask);
    callableTasks.add(callableTask);
    callableTasks.add(callableTask);
    
  • 将列表传递给executor服务。executorService是executorService类的实例化

    List<Future<String>> futures = executorService.invokeAll(callableTasks);
    
    List futures=executorService.invokeAll(callableTasks);
    
  • futures对象存储有关线程的某些信息。这6个api调用中的每一个都可以存储在该对象中

  • 有关更多信息,请参阅本文


    祝你好运

    我不确定这是否是您想要的,但是如果您的6个异步调用可以被放入实现可调用接口的类中,那么您可以创建一个列表并将其传递给executor服务函数。见下文:

  • 创建列表并将可调用任务添加到该列表中

    List<Callable<String>> callableTasks = new ArrayList<>();
    
    callableTasks.add(callableTask);
    
    callableTasks.add(callableTask);
    
    callableTasks.add(callableTask);
    
    List callableTasks=new ArrayList();
    callableTasks.add(callableTask);
    callableTasks.add(callableTask);
    callableTasks.add(callableTask);
    
  • 将列表传递给executor服务。executorService是executorService类的实例化

    List<Future<String>> futures = executorService.invokeAll(callableTasks);
    
    List futures=executorService.invokeAll(callableTasks);
    
  • futures对象存储有关线程的某些信息。这6个api调用中的每一个都可以存储在该对象中

  • 有关更多信息,请参阅本文


    祝你好运

    如果您可以修改API以返回异步结果(如Future),这可能会有所帮助@bartius nigel提供的方法是一种很好的方法。如果您不能修改API,则必须对API的回调进行处理。这是否回答了您的问题?如果您可以修改API以返回异步结果(如Future),这可能会有所帮助@bartius nigel提供的方法是一种很好的方法。如果您不能修改API,则必须对API的回调进行处理。这是否回答了您的问题?