gpt4 book ai didi

java - 如果原始作业失败,则执行单独的 Spring Batch 作业

转载 作者:行者123 更新时间:2023-12-01 09:29:05 29 4
gpt4 key购买 nike

我有一个主要的 Spring 批处理作业,有多个步骤。如果该作业由于某种原因失败,我需要调用另一个作业来更新数据库中的表并包含失败结果。

如何配置批处理流程来执行此操作?

我像这样创建了一个 JobExecution,但我不知道如何从 if/else 语句调用新作业:

@Bean 
public JobExecutionListener dataListener() {
JobCompletionNotificationListener dataNotificationListener = new JobCompletionNotificationListener(new JdbcTemplate(dataDataSource));
dataNotificationListener.afterJob(jobExecution());
return dataNotificationListener;
}


@Bean
public JobExecution jobExecution() {

JobExecution jobExecution = new JobExecution(jobExecution());

if (jobExecution.getStatus() == BatchStatus.COMPLETED) {

// If job completed successfully, update current job log to success


} else if (jobExecution.getStatus() == BatchStatus.FAILED) {

// If job failed, update current job log to failure

}

return jobExecution;
}

最佳答案

您需要向作业添加一个监听器类,该监听器类实现 JobExecutionListener 接口(interface),并在检查条件后在 public void afterJob(JobExecution jobExecution) 方法中调用您的逻辑 jobExecution.getStatus() == BatchStatus.FAILED

关于java - 如果原始作业失败,则执行单独的 Spring Batch 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39599870/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com