XXL-JOB学习笔记-新增企业微信告警通知

xxl-job默认的告警通知方式是发送邮件,工作中不易及时的收到通知并作出响应,所以想要调整下告警的通知方式,查阅文档资料,发现可以扩展xxl-job的源码实现支持。
主要思路就是根据xxl-job现有的告警机制,扩展实现企业微信机器人的告警功能,接下来就记录下xxl-job新增企业微信告警通知功能。
  • 从官方网站上下载xxl-job源码,导入IDEA。
    官方地址:https://github.com/xuxueli/xxl-job 或 https://gitee.com/xuxueli0323/xxl-job。
  • xxl-job现有的告警功能。可以发现只要实现JobAlarm这个接口就可以了。
@Component
public class JobAlarmer implements ApplicationContextAware, InitializingBean {
   
   

    private static Logger logger = LoggerFactory.getLogger(JobAlarmer.class);

    private ApplicationContext applicationContext;

    private List<JobAlarm> jobAlarmList;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
   
   
        this.applicationContext = applicationContext;
    }

    @Override
    public void afterPropertiesSet() throws Exception {
   
   
        Map<String, JobAlarm> serviceBeanMap = applicationContext.getBeansOfType(JobAlarm.class);
        if (serviceBeanMap != null && serviceBeanMap.size() > 0) {
   
   
            jobAlarmList = new ArrayList<JobAlarm>(serviceBeanMap.values());
        }
    }

    /**
     * job alarm
     *
     * @param info
     * @param jobLog
     * @return
     */
    public boolean alarm(XxlJobInfo info, XxlJobLog jobLog) {
   
   
        boolean result = false;
        if (jobAlarmList!=null && jobAlarmList.size()>0) {
   
   
            result = true;  // success means all-success
            for (JobAlarm alarm: jobAlarmList) {
   
   
                boolean resultItem = false;
                try {
   
   
                    resultItem = alarm.doAlarm(info, jobLog);
                } catch (Exception e) {
   
   
                    logger.error(e.getMessage(), e);
                }
                if (!resultItem) {
   
   
                    result = false;
                }
            }
        }
        return result;
    }

}
  • 扩展实现企业微信机器人的告警功能。
    在企业微信终端某个群组添加机器人之后,创建者可以在机器人详情页看到该机器人特有的webhookurl。开发者可以向这个地址发起HTTP POST请求,即可实现给该群组发送消息。相关资料可以参考:https://developer.work.weixin.qq.com/document/path/91770
    后续可能还会有其他告警通知的需求(比如钉钉告警通知等),就先抽取一个类出来,方便后续扩展。
public abstract class AbstractJobAlarm implements JobAlarm {
   
   

    protected static final Logger logger = LoggerFactory.

相关推荐

  1. XXL-JOB学习笔记-新增企业告警通知

    2024-01-06 19:50:03       28 阅读
  2. XXL-JOB学习笔记-基于代码实现新建、修改任务

    2024-01-06 19:50:03       32 阅读
  3. XXL-JOB学习笔记-基于注解实现自动注册新建任务

    2024-01-06 19:50:03       45 阅读
  4. 【zabbix】(四)-钉钉告警&企业配置

    2024-01-06 19:50:03       49 阅读
  5. xxl-job使用笔记

    2024-01-06 19:50:03       39 阅读
  6. XXL-JOB通过Postman调试本地任务

    2024-01-06 19:50:03       20 阅读
  7. <span style='color:red;'>xxl</span>-<span style='color:red;'>job</span>

    xxl-job

    2024-01-06 19:50:03      16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 19:50:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 19:50:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 19:50:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 19:50:03       18 阅读

热门阅读

  1. Springboot实体类与数据表对应修改

    2024-01-06 19:50:03       39 阅读
  2. 【Mysql】 创建账号并赋予权限

    2024-01-06 19:50:03       41 阅读
  3. UI 自动化-krunner

    2024-01-06 19:50:03       36 阅读
  4. bulk-RNA seq测序数据分析流程

    2024-01-06 19:50:03       37 阅读
  5. 设计模式:原型模式

    2024-01-06 19:50:03       37 阅读
  6. C语言中#define的用法详解

    2024-01-06 19:50:03       39 阅读