响应主体中的Spring Batch作业执行状态

时间:2018-06-28 14:27:31

标签: java spring spring-batch

我是Spring Batch的新手,很困惑

我有一个带有一些请求映射的控制器。当我获得某个URL时,我想将作业状态打印到响应正文中。这是一些代码:

@RequestMapping(value = "/batchExecution", method = RequestMethod.GET)
@ResponseBody
public String getJobExecutionStatus() {
    return "Hello world!";
}

我尝试将JobExecution添加到方法中,但是您只能使用JobExecutionListener访问这些元素吗?

@RequestMapping(value = "/batchExecution", method = RequestMethod.GET)
@ResponseBody
public String getJobExecutionStatus(JobExecution jobExecution) {
    return "Hello world!";
}

很抱歉,我的noobie问题,找不到我要寻找的文档

2 个答案:

答案 0 :(得分:0)

要解决此问题,我可以在Pospolita Nikita对原始帖子的评论的帮助下回答自己的问题。

我使用处理方法实现了服务,然后在程序控制器中调用了该方法。代码如下:

服务

Y118834

控制器

@Override
    public String process(Long jobId) throws Exception {
        BatchStatus jobStatus = explorer.getJobExecution(jobId).getStatus();
        LOGGER.info("The Job ID is: " + jobId);
        LOGGER.info("The job status is: "+jobStatus);
        return null;
    }

希望这可以帮助其他人。谢谢!

答案 1 :(得分:-1)

我建议您添加一个由控制器调用的服务,并在其中运行批处理作业,然后返回执行状态以将其返回