Dan*_*ush 2 java spring-mvc batch-processing spring-batch
我想知道如何监视当前正在运行的批处理作业的状态.我的作业基本上是处理文件夹的一些默认步骤,所以我想逐步向用户显示进度.我正在使用Tasklets和DB Job Repository.解释一些实现这一目标的示例代码将更有帮助.
谢谢.
如果您想开发自己的监控应用程序/网页,您可能需要查看JobExplorer或JobOperator界面。它为您提供了获取 JobExecutions 的方法,在 JobExecutions 中,您可以获取 StepExecutions。所有这些都为您提供了工作的状态和内部的各个步骤。
编辑以回复评论:
对于引用的进度信息,它不是存储在 Spring Batch 中的。但是,这两个界面确实可以帮助您解决这个问题。首先将进度信息存储在步骤执行上下文中。然后确保您的 tasklet 没有实现为同步任务。您必须返回 CONTINUABLE(请原谅我混淆了这个术语,我之前使用 Spring Batch 已经有一段时间了),以便您的 tasklet 将被 Spring Batch 连续调用。(这可以通过多种方式完成,您可以将工作分解为多个部分,并且对于 tasklet execute() 的每次调用,您只处理其中的一个并仅在所有部分完成时返回 FINISHED,或者您可以生成另一个线程完成工作,而您的 tasklet 只是监视进度等)。
通过这样做,您将使用进度信息不断更新步骤执行上下文,因此您可以使用 JobExplorer 和 JobOperator 来获取作业执行 -> 步骤执行 -> 步骤的执行上下文以用于您的进度报告目的。
您应该看看spring批处理管理应用程序.
直接引用:这是一个常规战争档案.部署完成后,您可以使用Web浏览器进行浏览(例如localhost:8080/spring-batch-admin-sample),并查看启动作业和检查作业执行的功能.
当然,通过一些修改,您可以实现自己的要求.
| 归档时间: |
|
| 查看次数: |
16753 次 |
| 最近记录: |