【发布时间】:2023-03-30 22:31:01
【问题描述】:
我对 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!";
}
抱歉我的菜鸟问题,我找不到任何关于我正在寻找的文档
【问题讨论】:
-
寻找 JobExplorer:docs.spring.io/spring-batch/trunk/apidocs/org/springframework/… 你可以自动装配它并得到你想要的一切。
-
@PospolitaNikita 我很困惑,要使用 JobExplorer 中的 getJobInstance,您需要提供一个 instanceId...您如何获得这个?
-
你可以调用“.findJobInstancesByJobName”,然后获取任何JobInstance提供给“.getJobExecutions”
-
@PospolitaNikita 再一次,您必须提供工作名称、开始和计数?我不明白在不知道这些信息的情况下调用这些方法
-
如果你使用 Spring Batch,你已经有了 JobName。只需查看此方法的实现即可了解“开始”和“计数”的含义。我认为您可以只使用 0 和 100 进行测试。检查文档的另一种途径 - docs.spring.io/spring-batch/trunk/reference/htmlsingle/… 所有 jobExecutions 都可以存储在 DB 中,因此您可以从那里获取这些信息。
标签: java spring spring-batch