gpt4 book ai didi

java - Spring 批处理最终失败

转载 作者:行者123 更新时间:2023-12-02 08:58:05 25 4
gpt4 key购买 nike

是否有一个解决方案允许您检查给定作业(JobInstance)的作业存储库,白天是否存在已完成的作业,如果当天的batch_job_execution表上没有完成状态,所以我必须发送通知或退出代码,就像我们今天什么也没收到一样。

我计划在从 JobExecutionListenerSupport 扩展的类中实现该解决方案,如下所示:

public class JobCompletionNotificationListener extends JobExecutionListenerSupport {

private Logger logger = LoggerFactory.getLogger(JobCompletionNotificationListener.class);
private JobRegistry jobRegistry;
private JobRepository jobRepository;

public JobCompletionNotificationListener(JobRegistry jobRegistry, JobRepository jobRepository) {
this.jobRegistry = jobRegistry;
this.jobRepository = jobRepository;
}

@Override
public void afterJob(JobExecution jobExecution) {
System.out.println("finishhhhh");
//the logic if no job completed to day
if(noJobCompletedToDay){
Notify();
}
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
logger.info("!!! JOB FINISHED! -> example action execute after Job");
}
}

}

最佳答案

您可以使用JobExplorer#getLastJobExecution获取作业实例的最后一次执行并检查它是否在当天完成。

根据您要执行该检查的时间,您还可以确保当前没有正在运行的作业(JobExplorer#findRunningJobExecutions 可以提供帮助)。

关于java - Spring 批处理最终失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60367310/

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