XXL-JOB (1)---如何自定义告警及运行流程

背景

  • 有一些springboot项目涉及到较多的定时任务,使用XXL-JOB系统来进行管理,其默认实现通过邮件进行告警。
  • 我们可以通过自定义的告警类来实现其它渠道的告警。

自定义告警

  • 在包com.xxl.job.admin.core.alarm.impl下新建告警类继承JobAlarm类并重写doAlarm方法,在此方法中编写自定义告警逻辑。
  • 自定义告警代码如下:
    • code detail
  • 告警样例:
    • 告警上报详情

告警流程源码运行流程

  • XxlJobAdminConfig继承了InitializingBean, DisposableBean在springboot其中过程会调用XxlJobAdminConfig的init方法,此方法作为整个xxl job admin的入口方法,运行着众多的后台线程。
    • image.png
  • init方法中启动守护线程用于监控运行失败的job。
    • image.png
  • 查找失败任务并告警的流程:
    • (1)查询运行失败的任务
    • (2)调用告警媒介接口类JobAlarmer的alarm方法
    • image.png
  • 告警流程:
    • JobAlarmer同样继承了ApplicationContextAware, InitializingBean那么在springboot启动的时候会代用(2)中的afterPropertiesSet方法。
    • afterPropertiesSet中通过getBeansOfType获取到JobAlarm类的全部实现类,封装到jobAlarmList数组中。
    • 对jobAlarmList进行遍历,并分别调用各个实现的doAlarm方法即可完成多渠道的告警上报。
  • alarm process

你可能感兴趣的:(XXL-JOB (1)---如何自定义告警及运行流程)