首页 > 其他分享 >同步异常发送钉钉群实现方案

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

时间:2023-05-17 10:12:23浏览次数:45  
标签:Ding 同步 open text 发送 env push 异常

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

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

.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

相关文章

  • 统一异常处理
    SpringBoot中的统一异常处理Result为封装传递给前端的包装类全局异常处理/***CreatedwithIntelliJIDEA.**@Author:KeYu*@Package:com.feiyu.common.exception*@Date:2023/05/17/9:05*@说明:统一异常处理*/@ControllerAdvicepublicclassGlobalE......
  • Linux下文本格式异常:with CRLF line terminators
    linux下在处理文本时,有时会遇到列打印或者显示异常:这是因为有些命令输出重写向到文本,会带入默认Windows文本格式,正常的linux文本中每行是以换行符(\n)结束,windows文本中每行是以回车+换行符(\r\n)结束,可以通过dos2unix工具进行转换:通过file文件名命令可以查看输出:linux文本格式为:A......
  • 使复杂异步方法变为同步。用promise阻塞
    使复杂异步方法变为同步假如有一个functionasyncFather(){awaitA();awaitb()},需要等方法A执行完,再继续往下执行B的代码,而A()中有很多东西,可能会导致异步。则可在A()内写成promise(resolve()),在A()内所有方法执行完毕后,再执行promise的resolve(),使得Father()在等到A()的resole才......
  • .Net 5 CanalSharp Mysql CDC (增量同步,捕获变更数据)Docker 系列之 Canal (CDC 增量
    CanalSharp阿里云的解决方案,需要两部分Canal 服务端要和Mysql连在一起(目前我是用docker部署的服务)另外一部分就是CanalSharp单独的客户端服务(.Net5服务)CanalSharp文档可以参考:https://canalsharp.azurewebsites.net/zh/安装服务,可以点击下边的连接。Docker系列之Canal......
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
    之前业务需要捕捉到业务数据增量部分,并对其进行宽表处理,这也是其中的一个技术方案,方案主要是用了CDC的技术。CDC全称是ChangeDataCapture,捕获变更数据,是一个比较广泛的概念,只要是能够捕获所有数据的变化,比如数据库捕获完整的变更日志记录增、删、改等,都可以称为CDC。该功能被......
  • APP自动化-异常截图-利用内存空间(class)
    根据 APP自动化-异常截图-利用内存空间(list),这里还可以使用类的方法。在Package目录下建立一个什么情况下可以操作内存空间.py的文件,里面建立一个类classComtext:#类名可以随便定义pass 然后在conftest1中设置引入类,然后使用python内置函数 setattr函数映射i......
  • APP自动化-异常截图-利用内存空间(list)
    先在package目录下建立一个文件,如:什么情况下可以操作内存空间.py里面建立一个列表:list1=[]因为conftest可以在很多层级都存在比如:我们在testcase目录下的conftest-1文件中没有pytest异常截图的那段代码(最下面注释掉的部分)1#!/usr/bin/envpython2#-*-coding:utf-8......
  • spring boot发送http
     publicstatic<T>TdoGet(Stringurl,Class<T>responseType,Map<String,Object>paramMap){    SimpleClientHttpRequestFactoryrequestFactory=newSimpleClientHttpRequestFactory();    requestFactory.setConnectTimeout(1000);  ......
  • 永磁同步电机矢量控制C代码,全部从项目中总结得到,采用的S- 永磁同步电机矢量控制C代码,
    永磁同步电机矢量控制C代码,全部从项目中总结得到,采用的S-永磁同步电机矢量控制C代码,全部从项目中总结得到,采用的S-function模式仿真,与实际项目运行基本一致,可以直接复制代码移植到工程实践项目中去。ID:22390662457992412......
  • C#线程同步
    lock(obj){//synchronizedregionforobj}等价于Monitor.Enter(obj)等价于try{//synchronizedregionforobj}finally{Monitor.Exit(obj);}Monitor.Enter:在指定对象上获取排他锁Monitor.Enter方法,如果排它锁获取不到(其他线程在占用obj锁定的资源),则该方法会一直等待(等待线程来获取o......