钉钉消息异常通知

钉钉消息异常通知

支持多线程
支持多进程
支持@多人
支持@所有人

from pprint import pprintimport requests
import json
import threading
import multiprocessing
from datetime import datetimeclass DingTalkAlert:def __init__(self, webhook_url, secret=None):self.webhook_url = webhook_urlself.secret = secretdef send_message(self, title, error_message, **kwargs):at_all = kwargs.get('at_all', False)at_mobiles = kwargs.get('at_mobiles', [])timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')message_content = f"**标题**: {title}\n\n**异常信息**: {error_message}\n\n**发生时间**: {timestamp}"# headers = {#     'Content-Type': 'application/json'# }data = {"msgtype": "text","text": {"title": title,"content": message_content},"at": {"isAtAll": at_all,"atUserIds": [],"atMobiles": at_mobiles}}pprint(data)response = requests.post(self.webhook_url, data=json.dumps(data), headers={'Content-Type': 'application/json'})print(response.status_code)return response.json()def send_message_thread(self, title, error_message, **kwargs):thread = threading.Thread(target=self.send_message, args=(title, error_message), kwargs=kwargs)thread.start()thread.join()def send_message_process(self, title, error_message, **kwargs):process = multiprocessing.Process(target=self.send_message, args=(title, error_message), kwargs=kwargs)process.start()process.join()# 使用示例
if __name__ == "__main__":webhook_url = 'https://oapi.dingtalk.com/robot/send?access_token='alert = DingTalkAlert(webhook_url)# 发送消息,@所有人alert.send_message("告警通知", "这是一个告警消息,测试阶段,消息打扰,请多多包涵", at_all=True)# 发送消息,@具体的多个负责人alert.send_message("i告警通知", "这是一个告警消息,测试阶段,消息打扰,请多多包涵", at_mobiles=["1881xxxx363", ])# 多线程发送消息,@所有人alert.send_message_thread("告警通知", "这是一个多线程告警消息,测试阶段,消息打扰,请多多包涵", at_all=True)# 多进程发送消息,@具体的多个负责人alert.send_message_process("i告警通知", "这是一个多进程告警消息,测试阶段,消息打扰,请多多包涵", at_mobiles=["1881xxxx363", "13900000000"])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/41121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql查询慢的一种优化思路:尝试将多表查询转为单表查询

背景 接到一个报表优化的需求,该sql inner join了两张表,主表中数据大概是三千万,经测试,查询2023-07-01这一天的数据需要12秒,查询2023-07-01~2023-07-31 却只需要1.1秒,查询2024-07-01需要20分钟&#x…

Ubuntu安装PostgreSQL

Ubuntu(在线版) 更新软件源 sudo apt-get update 添加PostgreSQL官方数字签名 wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 将地址添加到系统的软件包源列表中 echo "deb http://apt.postgresql.org/pub/repos/a…

MySQL数据库-Windows部署MySQL环境

Windows部署MySQL环境​​​​​​ 一、下载mysql数据库 进入MySQL官方网站(MySQL :: MySQL DownloadsMySQL),随后按如下红框方式操作: ​ ​ ​ ​ 这里选择的是离线安装,第一个是在线安装 下载好安装包后开始…

基于Springboot的智慧养老中心管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Springboot的智慧养老中心管理系统,…

重启技术博客记录的第一篇文章

在完成八个月的实习,准备毕业设计,经历一段断断续续的接活,和其他人讨论,帮助他人完善项目的阶段后,我终于准备重启自己的技术博客去记录日常,分享我所取得的一些经验。 这一年我经历了很多,眼…

YUM——简介、安装(Ubuntu22.04)

1、简介 YUM(Yellowdog Updater, Modified)是一个开源的命令行软件包管理工具,主要用于基于 RPM 包管理系统的 Linux 发行版,如 CentOS、Red Hat Enterprise Linux (RHEL) 和 Fedora。YUM 使用户能够轻松地安装、更新、删除和管理…

Linux 账号安全管理及应用

一、账号安全控制 1.系统账号清理 1.1 将非登录用户设置为无法登录 usermod -s /etc/nologin pkm #将名为pkm 用户的shell设为/sbin/nologin 用户 pkm 将无法登录 1.2 锁定长期不使用的账号 usermod -L 用户名 #锁定用户账号密码 usermod -U …

【C】Structure

参考摘抄学习来自: C 结构体C语言必学知识点 "结构体"详细解析!C 语言之结构体最全面总结C typedef 文章目录 1 定义2 初始化3 结构体大小的计算4 访问结构成员5 结构作为函数参数6 指向结构的指针7 结构体数组8 动态申请结构体 1 定义 它允…

导入的Docker 镜像无名称和标签问题

解决办法 第一种 重命名 docker tag [镜像id] [新镜像名称]:[新镜像标签]第二种 规范导出 docker save -o xxxx.tar [镜像名称]:[镜像标签]使用镜像ID打包的话导致解压的出来的镜像没有名字

RFID电子锁在物流货运智能锁控管理的创新方案

物流货运锁控的现实挑战 易损性:传统锁具易受物理破坏,无法抵御恶意撬锁。 低效率:依赖人工操作,开锁速度慢,影响作业效率。 高成本:钥匙的制作、管理和丢失替换成本高昂。 监控缺陷:缺乏实…

深入理解Java的面向对象编程

1. 什么是面向对象编程(OOP)? 面向对象编程是一种编程范式,它将程序中的数据与操作数据的方法组织为对象。每个对象都可以接收消息、处理数据以及发送消息给其他对象。在Java中,每个对象都是一个类的实例。 2. 核心概…

保障信息资产:ISO 27001信息安全管理体系的重要性

在当今数字化和全球化的时代,信息安全已经成为企业成功和持续发展的关键因素之一。随着信息技术的快速发展和互联网的普及,企业面临着越来越多的信息安全威胁和挑战,如数据泄露、网络攻击、恶意软件等。为了有效应对这些威胁,企业…

智能升级,监控无界——全新安全生产生态算法一体机上线

安全生产生态算法一体机 安全生产生态算法一体机是万物纵横推出的一款AI算法软硬一体生态产品,重点面向安全生产领域,采用BM1684强劲AI芯片,内置安全生产场景所需的多种专用AI算法,面向各场景的人员监控、规范作业、异常检测等应…

实现ubuntu的任务计划反弹shell

1.实验目的 使用Ubuntu定时任务反弹shell 2实验环境 ubuntu:ip地址:192.168.80.133 kali:ip地址:192.168.80.134 3.编写crontab计划任务 在ubuntu的系统中使用crontab -e命令编写计划任务 作用:是将一个交互式的…

Mysql 左关联(LEFT JOIN)

在左关联(LEFT JOIN)操作中,关于大表和小表的连接顺序,通常建议将小表放在前面,大表放在后面。这种安排方式有助于提高查询效率,原因如下: 扫描效率:在SQL查询中,尤其是…

Java 乐观锁与悲观锁

1. 前言 本节内容主要是对 Java 乐观锁与悲观锁进行更加深入的讲解,本节内容更加偏重于对乐观锁的讲解,因为 synchronized 悲观锁对于大部分学习者并不陌生,本节主要内容如下: 乐观锁与悲观锁的概念,之前有所讲解,这里用很小的篇幅进行知识的回顾,巩固;乐观锁与悲观锁…

Vue +Echarts 二维数组获取最大值和最小值以及索引

实现图例效果 获取最大值方法&#xff1a; maxSecond(array) {let max Number.MIN_SAFE_INTEGER;for (let i 0; i < array.length; i) {const secondElement parseInt(array[i][1]);if (secondElement > max) {max secondElement;}}return max;}, 获取最大值索引&…

【高性能服务器】select模型

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 IO多路复用就是复用…

ES 嵌套查询

背景 一个配方由多种原材料组成&#xff0c;需求是根据各种原材料的用量搜索出对应的配方 配方实体类 class Formula {private long id;private String name;private List<Material> materials;}class Material {JsonProperty("material_id")private long m…

认识不-物联网“六域模型”有哪些有什么作用

如下参考源于苏州稳联授权可见认知域-感知域-网络域-应用域-管理域-安全域-物联网六域模型 苏州稳联 (iotrouter.cn) 认识物联网“六域模型”&#xff1a;构成与作用 “六域模型”是一个有效的框架。这个模型通过将物联网划分为六个相互关联的域&#xff0c;帮助我们更好地理…