Spring批处理停止工作

Ale*_*lex 5 spring spring-batch

如何停止春季批次的工作?我尝试使用以下代码使用此方法:

public class jobListener implements JobExecutionListener{

  @Override
  public void beforeJob(JobExecution jobExecution) {
    jobExecution.setExitStatus(ExitStatus.STOPPED);

  }


  @Override
  public void afterJob(JobExecution jobExecution) {
    // TODO Auto-generated method stub

  }
}
Run Code Online (Sandbox Code Playgroud)

我也试过 COMPLETED,FAILED 但这种方法不起作用,作业继续执行。有什么解决办法吗?

cam*_*tic 5

您可以将 JobOperator 与 JobExplorer 一起使用来从作业外部停止作业(请参阅https://docs.spring.io/spring-batch/reference/html/configureJob.html#JobOperator)。方法是stop(long executionId) 你必须使用JobExplorer找到正确的executionId来停止。

此外,在作业流程配置中,您可以将作业配置为在基于退出状态的步骤执行后停止(请参阅https://docs.spring.io/spring-batch/trunk/reference/html/configureStep.html#stopElement) 。