Spring boot 作为Web应用程序的一部分触发Spring批处理
我正在开发一个web应用程序,作为要求的一部分,应用程序用户单击UI上可用的按钮,以便后台Spring boot 作为Web应用程序的一部分触发Spring批处理,spring-boot,spring-batch,Spring Boot,Spring Batch,我正在开发一个web应用程序,作为要求的一部分,应用程序用户单击UI上可用的按钮,以便后台spring batch应用程序在15分钟内触发并处理数据 由于应用程序是基于web的,用户可以在任何给定时间点并发调用批处理过程。当用户执行单击操作时,UI不需要等待批处理状态或响应 我已经准备好了用 simplejoblancher,为了解决这个问题,我计划编写一个REST端点来调用spring批处理,但是我不确定如何处理来自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响应,而不等待作业完成。