分布式任务调度与计算框架:PowerJob 报警配置(邮件、WebHook、钉钉、自定义)06

报警配置(邮件、WebHook、钉钉、自定义)

邮件报警

STEP1: 初始化

在 powerjob-server 中初始化邮件配置,具体教程可以搜索 SpringBoot 邮件配置。

在这里插入图片描述

STEP2: 配置报警信息

  1. 在控制台登陆界面(点击右上角 Setting - 退出 即可前往控制台登陆界面)点击 报警用户录入
  2. 录入报警用户信息
  3. 在任务中配置报警接收人。

在这里插入图片描述

WebHook

STEP1: 创建特殊角色 SYSTEM_WEBHOOK

在这里插入图片描述

STEP2: 开发接收 webhook 的服务端

powerjob-server 会向目标 URL 发送包含报警任务内容POST 请求,推荐使用 Map<String, Object> 接收并处理:

@RequestMapping("/powerjob")
public class AlarmReceiveController {

    @PostMapping("/alarm")
    public String receiveAlarmInfo(@RequestBody Map<String, Object> params) {
        
        // 可以先打印下 params 看看里面具体是什么(原始对象为 JobInstanceAlarm 或 WorkflowInstanceAlarm)
        System.out.println(params);
        
        // 完成自定义处理

        // 返回任意值都表示调用成功
        return "success";
    }
}

JobInstanceAlarm(任务运行失败的告警对象)

public class JobInstanceAlarm {
    // 应用ID
    private long appId;
    // 任务ID
    private long jobId;
    // 任务实例ID
    private long instanceId;
    // 任务名称
    private String jobName;
    // 任务自带的参数
    private String jobParams;
    // 时间表达式类型(CRON/API/FIX_RATE/FIX_DELAY)
    private Integer timeExpressionType;
    // 时间表达式,CRON/NULL/LONG/LONG
    private String timeExpression;
    // 执行类型,单机/广播/MR
    private Integer executeType;
    // 执行器类型,Java/Shell
    private Integer processorType;
    // 执行器信息
    private String processorInfo;

    // 任务实例参数
    private String instanceParams;
    // 执行结果
    private String result;
    // 预计触发时间
    private Long expectedTriggerTime;
    // 实际触发时间
    private Long actualTriggerTime;
    // 结束时间
    private Long finishedTime;
    // TaskTracker地址
    private String taskTrackerAddress;
}

WorkflowInstanceAlarm(工作流执行失败告警对象)

public class WorkflowInstanceAlarm {

    private String workflowName;

    // 任务所属应用的ID,冗余提高查询效率
    private Long appId;
    private Long workflowId;
    // workflowInstanceId(任务实例表都使用单独的ID作为主键以支持潜在的分表需求)
    private Long wfInstanceId;
    // workflow 状态(WorkflowInstanceStatus)
    private Integer status;

    private PEWorkflowDAG peWorkflowDAG;
    private String result;

    // 实际触发时间
    private Long actualTriggerTime;
    // 结束时间
    private Long finishedTime;

    // 时间表达式类型(CRON/API/FIX_RATE/FIX_DELAY)
    private Integer timeExpressionType;
    // 时间表达式,CRON/NULL/LONG/LONG
    private String timeExpression;
}

钉钉报警

STEP1: 创建企业内部应用:PowerJob

  1. 前往 钉钉开放平台,登陆企业账号,创建小程序,填入应用名称(推荐使用 PowerJob)、描述和图标。具体可参考下图。

在这里插入图片描述

  1. 点击创建的小程序,进入小程序管理界面,查看应用凭证,将相关的参数复制到 powerjob-server 的配置文件中(oms.alarm.ding.agent-id、oms.alarm.ding.app-key 和 oms.alarm.ding.app-secret)。

在这里插入图片描述

  1. 配置服务器出口 IP。根据钉钉限制,只有指定 IP 的服务器发送的消息才能被用户接收。因此需要前往 开发管理 tab 页录入 服务器出口IP。(注意,是服务器出口 IP 而不是 服务器本机 IP,也就是要 获得服务器的公网 IP)(一句话教程:登陆服务器执行 curl ip.sb,不会或者命令失效请自行百度)

在这里插入图片描述

4.开通小程序权限。进入权限管理 tab 页,点击添加接口权限,找到“手机号获取userid”并添加。

在这里插入图片描述

定制开发其他的报警能力

powerjob-server 是一个“简单”的 SpringBoot 应用,因此如果系统自带的报警能力无法满足您的需求,您可以自己动手完成想要的报警能力开发(比如短信报警、电话报警、企业微信等)。您需要做的只有一件事:

104)]

定制开发其他的报警能力

powerjob-server 是一个“简单”的 SpringBoot 应用,因此如果系统自带的报警能力无法满足您的需求,您可以自己动手完成想要的报警能力开发(比如短信报警、电话报警、企业微信等)。您需要做的只有一件事:

实现 tech.powerjob.server.extension.Alarmable 接口,并将实现类对象的创建交由 Spring 管理(添加 @Service 或 @Component 注解)

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Add小兵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值