繁体   English   中英

Spring Batch:如何监视当前正在运行的作业并在jsp页面上显示进度

[英]Spring Batch:How to monitor currently running jobs & show progress on jsp page

我想知道如何监视当前正在运行的批处理作业的状态。我的作业基本上是处理文件夹的一些默认步骤,所以我想逐步向用户显示进度。我正在使用TaskletsDB Job Repository。解释一些实现这一目标的示例代码将更有帮助。
谢谢。

您应该看看spring批处理管理应用程序。

Spring Batch Admin

直接引用:这是一个常规战争档案。 部署完成后,您可以使用Web浏览器进行浏览(例如localhost:8080 / spring-batch-admin-sample),并查看启动作业和检查作业执行的功能。

当然,通过一些修改,您可以实现自己的要求。

如果您想开发自己的监视器应用程序/网页,可能需要查看JobExplorerJobOperator界面。 它为您提供了获取JobExecutions的方法,在JobExecutions中,您可以获得StepExecutions。 所有这些都可以为您提供工作状态和内部的各个步骤。


编辑以回复评论:

对于引用的进度信息,它不是存储在Spring Batch中的东西。 但是,两个界面DO可以帮助您。 首先将进度信息存储在步骤执行上下文中。 然后确保您的tasklet未实现为同步任务。 你必须返回CONTINUABLE(请原谅我,如果我混淆了这个术语,我以前使用过Spring Batch已经有一段时间了),所以你的tasklet将被Spring批量连续调用。 (这可以通过多种方式完成,要么将您的工作分解为片段,要么每次调用tasklet execute(),只处理其中的一部分并且仅在完成所有部分时返回FINISHED,否则您可能会生成另一个线程做这项工作,你的tasklet只是监控进度等)。

通过这样做,您将使用您的进度信息不断更新步骤执行上下文,因此您可以使用JobExplorer和JobOperator获取作业执行 - >步骤执行 - >步骤的执行上下文,以用于进度报告目的。

Spring Batch ver 4.2带有基于Micrometer的批量监控和指标捕获。您可以尝试利用相同的功能。 下表列出了一些指标 Spring批量指标

Spring Batch还允许您创建自己的指标。您可以在此处查看更多详细信息https://docs.spring.io/spring-batch/4.2.x/reference/html/monitoring-and-metrics.html#custom-metrics

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM