有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用RESTWebService的java触发器批处理作业

我的应用程序是基于spring boot和angular 2构建的。我正在从angular 2用户界面上传一个excel文件,该文件将保存在服务器中。我计划读取此文件并使用批处理作业将其保存在DB中。我想使用rest Web服务触发作业,这可能吗?我的目标是触发读取文件的作业,我的服务不应该等待响应。有什么建议吗


共 (2) 个答案

  1. # 1 楼答案

    是的,你所要做的就是在一个单独的线程中将文件保存到数据库。您可以使用spring批处理或普通的旧服务。 控制器方法如下所示:

    @RequestMapping(...)
    public ResponseEntity<Void> upload(File file) {
        executorService.submit(new BatchFileDBUpload(file));
        return ResponseEntity.accepted().build();
    }
    

    你的BatchFileDBUpload类需要是RunnableCallable

  2. # 2 楼答案

    您可以在控制器中自动连接JobLauncher和Job,并手动触发它们:

    @Autowired
    JobLauncher jobLauncher;
    @Autowired
    Job job;
    
    @RequestMapping("...")
    public void runJob(){
        jobLauncher.run(job, new JobParameters());
    }