Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 有序、长期运行的异步作业_Java_Spring - Fatal编程技术网

Java 有序、长期运行的异步作业

Java 有序、长期运行的异步作业,java,spring,Java,Spring,我的Spring Boot应用程序应按如下方式工作: 1.收到请求 2.通过对外部微服务进行API调用来触发一些长时间运行的作业 3.定期检查作业状态 4.作业完成后,以相同的方式启动第二个作业 5.定期检查作业状态 6.作业完成后,以相同的方式启动第三个作业 7.等等(有几个这样的步骤) 上面概述的过程可能需要30分钟,所以我不想在这么长的时间内阻塞单个线程。如果能以合理的方式实现,我将不胜感激。基于所提供的描述,调度程序似乎是一种合适的方法。默认情况下,调度器使用一个单独的线程,您可以在其中

我的Spring Boot应用程序应按如下方式工作: 1.收到请求 2.通过对外部微服务进行API调用来触发一些长时间运行的作业 3.定期检查作业状态 4.作业完成后,以相同的方式启动第二个作业 5.定期检查作业状态 6.作业完成后,以相同的方式启动第三个作业 7.等等(有几个这样的步骤)


上面概述的过程可能需要30分钟,所以我不想在这么长的时间内阻塞单个线程。如果能以合理的方式实现,我将不胜感激。

基于所提供的描述,调度程序似乎是一种合适的方法。默认情况下,调度器使用一个单独的线程,您可以在其中实现逻辑。另外,如果它正在运行,新作业将等待…

您可以使用
CompletableFuture
执行此操作

CompletableFuture.supplyAsync(() -> getApiValue())
                .thenApplyAsync(apiValue -> handle(apiValue))
                .thenApplyAsync(proc1Result -> handleMore(proc1Result))
                ... and so on