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

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

报警配置(邮件、WebHook、钉钉、自定义) 邮件报警 STEP1: 初始化

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

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

WebHook STEP1: 创建特殊角色 SYSTEM_WEBHOOK

STEP2: 开发接收 webhook 的服务端

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

@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 注解)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/741278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存