如果要开发自己的监视器应用程序/网页,则可能需要查看JobExplorer
或JobOperator
界面。它为您提供了获取JobExecutions的方法,在JobExecutions中,您可以获取StepExecutions。所有这些都为您提供了工作状态以及内部的各个步骤。
对于引用的进度信息,它不是存储在Spring Batch中的东西。但是,这两个界面确实可以帮助您。首先将进度信息存储在步骤执行上下文中。然后,确保您的tasklet没有实现为同步任务。您必须返回CONTINUABLE(如果我混淆了这个术语,请原谅我,我以前使用过Spring Batch已经有一段时间了),以便您的tasklet将被Spring Batch连续调用。(这可以通过多种方式完成,您可以将工作分解为一部分,并且每次调用tasklet execute()时,您只能处理其中一部分,并且仅在所有部分完成后才返回FINISHED,或者可以生成另一个线程来完成工作,而您的小任务只需监视进度等)。
这样,您将不断使用您的进度信息更新步骤执行上下文,因此您可以使用JobExplorer和JobOperator获取作业执行->步骤执行->步骤的执行上下文,以用于进度报告。