在阅读xxl-job源码时,作为资深菜鸟的我看到如下一段代码,将结果记录,供以后参考。
- 方法调用入口:
- 接口:
- 具体报警规则实现类:
以上类的简要功能是 xxljob中失败任务报警处理机制
贴出总结:
在JobAlarmer类中容器初始化时从spring上下文中获取JobAlarm类的对象list:jobAlarmList,(主要代码:applicationContext.getBeansOfType(JobAlarm.class);)alarm方法中遍历jobAlarmList调用重写的doAlarm方法(报警具体实现),当需要触发报警时,只需要调用JobAlarmer类的alarm方法,即可自动触发所有的报警实现,因xxl默认只有邮箱报警,所本文代码只贴出了邮箱报警EmailJobAlarm类的代码,此方式的好处是当需要其他报警方式:如短信报警,只需要添加类实现JobAlarm接口,使用@Component注解,并重写方法doAlarm即可,便会在JobAlarm类的alarm方法jobAlarmList中触发调用子类实现的短信报警方法,可拓展性强,便于维护。
每日毒汤:会的越多,不会的就越多。