首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring batch在一天结束时失败

spring batch在一天结束时失败
EN

Stack Overflow用户
提问于 2020-02-24 06:04:05
回答 2查看 179关注 0票数 0

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

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

代码语言:javascript
复制
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");
    }
}

}

EN

回答 2

Stack Overflow用户

发布于 2020-02-24 16:44:58

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

票数 1
EN

Stack Overflow用户

发布于 2020-02-24 06:47:14

您可以通过多种方式实现监控。从4.2版本开始,Spring Batch就提供了对基于千分尺的度量和监控的支持。有一个spring grafana示例,其中包含prometheus和grafana,您可以从这些工具中定制自定义电路板或启动警报。

如果你有几个批处理过程,这可能是最好的选择,除此之外,这些工具将帮助你监控服务,应用程序等。

内置指标:

作业execution

  • Currently活动作业的持续时间块写入

的项processing

  • Duration的项reading

  • Duration的步骤execution

  • Duration的持续时间

您可以创建自己的自定义指标(例如,执行失败)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60367310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档