在一些业务中,有一些同步功能,若发生了同步失败的情况,需要通知到业务产品和研发;
本通知使用钉钉机器人,具体功能实现如下:
.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】、留言、评论,一起学习。
文章来源:刘俊涛的博客
若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)
标签:Ding,同步,open,text,发送,env,push,异常 From: https://www.cnblogs.com/lovebing/p/17407658.html