我的应用程序是基于spring boot和angular 2.我从angular 2 UI上传一个excel文件,它将保存在服务器中。我打算读取此文件并使用批处理作业将其保存在DB中。我想使用其余的webservice来触发这项工作,这可能吗?我的目标是触发读取文件的作业,我的服务不应该等待响应。有什么建议吗?
答案 0 :(得分:0)
是的,您所要做的就是在单独的线程中安排将文件保存到数据库。您可以使用spring-batch或普通的旧ExecutorService。 你的控制器方法看起来像这样:
@RequestMapping(...)
public ResponseEntity<Void> upload(File file) {
executorService.submit(new BatchFileDBUpload(file));
return ResponseEntity.accepted().build();
}
您的BatchFileDBUpload
课程必须是Runnable
或Callable
答案 1 :(得分:0)
您可以在控制器中自动装配JobLauncher和Job并手动触发它们:
@Autowired
JobLauncher jobLauncher;
@Autowired
Job job;
@RequestMapping("...")
public void runJob(){
jobLauncher.run(job, new JobParameters());
}