同步异常发送钉钉群实现方案

在一些业务中,有一些同步功能,若发生了同步失败的情况,需要通知到业务产品和研发;

本通知使用钉钉机器人,具体功能实现如下:

.env

#钉钉推送配置
[Ding_push]
#是否开启
open = 0
#机器人地址
syncErrorUrl = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxx'
#@成员
at = 13268888888
#以下异常不通知
whiteMsg = '用户已注销'

统一推送方法

function syncErrorPushToDD($title, $text){
    $open = env('Ding_push.open');
    if($open && (env('app_env') === 'production')){
        #生产环境才通知
        $webhook = env('Ding_push.syncErrorUrl');
        $at = explode(',', env('Ding_push.at'));
        $datetime = date('Y-m-d H:i:s');
        $h1Title = '数据同步异常';
        $h2Title = "#### 【数据同步异常】\n\n ### <font color=#d21b1b>".$title."</font>\n\n";
        $text = $h2Title.$text."\n\n #### 【时间:".$datetime."】\n\n";
        $text .="\n\n @".implode('@', $at);
        pushToDingDingMD($webhook, $h1Title, $text,$at);
    }
}

业务中调用代码

//推送到钉钉群
if(!$this->checkIgnoreMsg($super_result['message'])) {
    $errorMsg = "#### 【用户:" . $sid['old_phone'] . "】\n\n";
    $errorMsg .= "#### 【原因:" . $super_result['message'] . "】\n\n";
    syncErrorPushToDD('【手机号变更】同步失败!', $errorMsg);
}
//检查是否有需要忽略的消息
private function checkIgnoreMsg($msg)
{
    $ignore = env('Ding_push.whiteMsg');
     //包含有需要忽略的消息
    return strpos($ignore, $msg) !== false;
}



欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)

posted @ 2023-05-17 09:59  刘俊涛的博客  阅读(18)  评论(0编辑  收藏  举报