对接钉钉实现对python项目的检测提醒

背景:公司目前在运营维护的是一款通过采集网页信息,保证项目内的信息能够定时更新的python项目。
前面博客实现的多个功能也是在为这个项目服务。(这个项目也是部门几个小伙伴一起努力从零开发出来的)。
因为网页的信息更新时间不能确定,并且网页的采集规则以及网站的正常访问,无法一直保持正常。
如果人工去筛查出没有正常工作的网站的话,工作量也是非常巨大且繁琐的(经常会搞到两三点的那种)。
为了保证采集项目的正常运行,缩短异常存在的时间,减少不必要的工作量(说到底还是懒),由此,决定开发一个能够检测采集项目是否正常运行的脚本。

检测脚本的功能

1.能够检测到采集项目运行是否正常。
2.检测到出现异常的网页,需要将网页的访问信息,和异常信息发送给开发者,提醒开发者及时修改。
3.脚本在固定时间自行启动,不需要人工干预

第一部分,对应项目的检测节点,依据项目流程来确定什么时候检测,什么时候提醒。由于公司项目的安全性,不方便做过多介绍。大家依据自己项目的运行流程和特点自己来确定。

最重要的是第二步:发送消息提醒

检测到项目异常之后,如何将异常信息发送给开发者呢?
正常的消息提醒,肯定是要选择手机消息的提醒。微信,QQ,短信等方式都具有可行性。
可惜的是,微信,QQ的消息提醒,需要借用到pc端的应用,而微信,QQ已经对PC端的登录访问做了限制,就无法使用了。
短信的话,可以借助第三方短信代发平台,一条短信的成本是0.034元,项目的信息量级不同,检测成本也不大相同。这是我们自己开发,也没有开发费用的支持。短信功能暂时先留着,以备后用。

最后决定使用钉钉来做这个消息提醒。

python对接钉钉的消息提醒。

钉钉的优点是:
1.平时大家办公学习会常用到,我们公司也经常使用钉钉做工作日报,公司的视频会议什么的。
2.开发流程相对来说比较简单,一次开发,没有其他多余操作。
3.免费,免费,免费

钉钉发送消息提醒的原理是:控制钉钉的机器人,使用机器人代发信息,目前机器人只能在钉钉群里使用,也就是说只能消息提醒至钉钉群里,没有对个人用户的消息提醒。

首先,需要一个钉钉账户。

在用户头像这里点击>>找到机器人管理
对接钉钉实现对python项目的检测提醒_第1张图片
选择自定义群机器人。
可以看到钉钉有许多已经开发好的群机器人,负责不同的消息提醒,还是比较厉害的。

选择添加机器人后出现机器人的基本信息,按要求注册,起名字,添加到指定群组,以及安全设置。
对接钉钉实现对python项目的检测提醒_第2张图片

设置完成后,机器人就启动成功了,我们需要用代码去操控这个机器人。
需要用到机器人的Webhook值。
对接钉钉实现对python项目的检测提醒_第3张图片
在钉钉开发文档中可以看到,自定义机器人的一些参数,以及设置方法和使用方法。
对接钉钉实现对python项目的检测提醒_第4张图片

我们按照固定的参数组装请求的信息,将需要的内容组装在content参数下,发送请求,就能实现钉钉群的消息发送了。

具体的代码如下所示:

 headers = {
        'Content-Type': 'application/json',
        "Charset": "UTF-8"
    }

    # 构建请求数据,post请求
    data = {
        'msgtype': 'text',
        'text': {
            'content': content
        }
    }

    # 对请求的数据进行json封装
    sendData = json.dumps(data)
    sendData = sendData.encode('utf-8')

    # 发送请求
    response = requests.post(url, data=sendData, headers=headers)

测试一下效果:
对接钉钉实现对python项目的检测提醒_第5张图片
信息发送成功了。

设置定时任务

将异常检测的脚本部署至服务器上,使用crontab设置定时任务。

至此,大功告成,完结撒花花了O(∩_∩)O哈哈~

你可能感兴趣的:(手写功能,常用小脚本,python,项目管理)