Spring boot 作为Web应用程序的一部分触发Spring批处理

Spring boot 作为Web应用程序的一部分触发Spring批处理,spring-boot,spring-batch,Spring Boot,Spring Batch,我正在开发一个web应用程序,作为要求的一部分,应用程序用户单击UI上可用的按钮,以便后台spring batch应用程序在15分钟内触发并处理数据 由于应用程序是基于web的,用户可以在任何给定时间点并发调用批处理过程。当用户执行单击操作时,UI不需要等待批处理状态或响应 我已经准备好了用 simplejoblancher,为了解决这个问题,我计划编写一个REST端点来调用spring批处理,但是我不确定如何处理来自UI的多个请求 我想知道如何将现有的同步批处理过程移植到新的应用程序 请注意。

我正在开发一个web应用程序,作为要求的一部分,应用程序用户单击UI上可用的按钮,以便后台
spring batch
应用程序在15分钟内触发并处理数据

由于应用程序是基于web的,用户可以在任何给定时间点并发调用批处理过程。当用户执行单击操作时,UI不需要等待批处理状态或响应

我已经准备好了用
simplejoblancher
,为了解决这个问题,我计划编写一个REST端点来调用
spring批处理
,但是我不确定如何处理来自UI的多个请求

我想知道如何将现有的同步批处理过程移植到新的应用程序


请注意。

默认情况下,
simplejoblancher
使用同步任务执行器启动作业。在您的情况下,您需要在作业启动程序中使用异步
TaskExecutor
实现。这将确保同时启动工作。以下是一个例子:

@Bean
public JobLauncher jobLauncher() {
    SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
    jobLauncher.setJobRepository(jobRepository());
    jobLauncher.setTaskExecutor(new SimpleAsyncTaskExecutor());
    jobLauncher.afterPropertiesSet();
    return jobLauncher;
}

参考文档的和部分对此进行了详细解释。

感谢您的回复@Mahmoud Ben Hassine。请告诉我如何处理我的服务,而不是在调用批处理作业后等待响应。使用异步任务执行器,作业将由后台线程运行,并且您的控制器将立即返回http响应,而不等待作业完成。