|
|

10精币
[backcolor=rgba(255, 255, 255, 0.06)]我要的是钉钉发信息类,队列发送,自由添加api,api是独立使用的不是都一样群,发送错误可以走固定api发送提示。失败的要本地存储。代码精简,运行速度快,代码不要重复。可以参考我发的代码例子,发送频率为1分钟不超过20条
[backcolor=rgba(255, 255, 255, 0.06)]
.类名 钉钉消息类 .对象集 公开 .私有变量 API列表, API配置, , "0" .私有变量 告警API名称, 文本型 .私有变量 发送队列, 队列 .私有变量 线程运行, 逻辑型 .私有变量 发送计数, 整数型 .私有变量 计数窗口期, 整数型 .私有常量 固定协议头, 文本型 = “Content-Type: application/json;charset=UTF-8”.私有常量 频率上限, 整数型 = 20 .私有常量 窗口期时长, 整数型 = 60000 .自定义数据类型 API配置 .自定义数据类型 队列项 |
| (未定义数据类型名) | | | |
| 内容 | 文本型 | | | | API名称 | 文本型 | | | | 序号 | 整数型 | | | 计数窗口期 = 取启动时间 () |
| 添加API | 逻辑型 | | |
| API名称 | 文本型 | | | | API地址 | 文本型 | | | |
计次循环首 (取数组成员数 (API列表 ), i ) 如果真 (API列表 [i ].名称 = API名称 ) 返回 (假) 计次循环尾 ()加入成员 (API列表, { API名称, API地址 })返回 (真) 计次循环首 (取数组成员数 (API列表 ), i ) 如果真 (API列表 [i ].名称 = API名称 )  告警API名称 = API名称  返回 (真) 计次循环尾 ()返回 (假) |
| 发送消息 | 逻辑型 | | |
| 消息内容 | 文本型 | | | | 目标API名称 | 文本型 | | | |
计次循环首 (取数组成员数 (API列表 ), i ) 如果真 (API列表 [i ].名称 = 目标API名称 )  项.内容 = 消息内容   项.API名称 = 目标API名称   项.序号 = 取启动时间 ()  发送队列. 入列 (项 )  如果真 (线程运行 = 假)   线程运行 = 真   线程_启动 (&队列消费线程 ) 返回 (真) 计次循环尾 ()返回 (假) | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 项 | 队列项 | | | | API地址 | 文本型 | | | | i | 整数型 | | |
判断循环首 (发送队列. 取计数 () > 0 ) 项 = 发送队列. 出列 ()  API地址 = “” 计次循环首 (取数组成员数 (API列表 ), i )  如果真 (API列表 [i ].名称 = 项.API名称 )   API地址 = API列表 [i ].地址   跳出循环 ()  计次循环尾 ()  如果真 (取启动时间 () - 计数窗口期 ≥ 窗口期时长 )  发送计数 = 0   计数窗口期 = 取启动时间 () 如果真 (发送计数 ≥ 频率上限 ) 延迟 (窗口期时长 (取启动时间 () - 计数窗口期 ))   发送计数 = 0   计数窗口期 = 取启动时间 ()  发送计数 = 发送计数 + 1  如果真 (核心发信 (项.内容, API地址, 项.序号 ) = 假) 写失败日志 (项, API地址 ) 发送错误告警 (项, API地址 ) 判断循环尾 ()线程运行 = 假 返回 (0 ) | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | json | 类_json | | | | 提交数据 | 文本型 | | | | 返回数据 | 字节集 | | | | 返回文本 | 文本型 | | |
.静态变量 JSON模板, 文本型 如果真 (JSON模板 = “”) JSON模板 = “{""msgtype"":""text"",""text"":{""content"":""""},""at"":{""atUserIds"":[],""isAtAll"":false}}”  json. 解析 (JSON模板 )json. 置属性 (“text.content”, 内容 )提交数据 = json. 取数据文本 ()返回数据 = 网页_访问_对象 (地址, #POST, 提交数据, , , 固定协议头, , , 5000 )返回文本 = 到文本 (编码_转换 (返回数据, #编码_UTF8, #编码_GBK )) 返回 (寻找文本 (返回文本, “errmsg":"ok”, , 假) ≠ -1 ) | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 日志内容 | 文本型 | | | | 日志路径 | 文本型 = 取运行目录 () + “\ding_fail.log” | | |
日志内容 = “[” + 到文本 (取现行时间 ()) + “] 序号:” + 到文本 (项.序号 ) + #换行 日志内容 = 日志内容 + “API:” + 项.API名称 + “ | 地址:” + API地址 + #换行 日志内容 = 日志内容 + “内容:” + 项.内容 + #换行 × 2 写到文件 (日志路径, 读入文件 (日志路径 ) + 到字节集 (日志内容 )) | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 告警内容 | 文本型 | | | | 告警API地址 | 文本型 | | | | i | 整数型 | | |
告警API地址 = “” 计次循环首 (取数组成员数 (API列表 ), i ) 如果真 (API列表 [i ].名称 = 告警API名称 )  告警API地址 = API列表 [i ].地址  跳出循环 () 计次循环尾 () 如果真 (告警API地址 = “”) 返回 ()告警内容 = “【钉钉发送失败】” + #换行 告警内容 = 告警内容 + “序号:” + 到文本 (项.序号 ) + #换行 告警内容 = 告警内容 + “失败API:” + 项.API名称 + #换行 告警内容 = 告警内容 + “失败地址:” + API地址 + #换行 告警内容 = 告警内容 + “消息内容:” + 项.内容 核心发信 (告警内容, 告警API地址, 项.序号 ) 钉钉工具. 创建 () 钉钉工具. 添加API (“订单群”, “https://oapi.dingtalk.com/robot/send?access_token=订单群token”)钉钉工具. 添加API (“运维群”, “https://oapi.dingtalk.com/robot/send?access_token=运维群token”) 钉钉工具. 设置告警API (“运维群”) 钉钉工具. 发送消息 (“订单12345支fu成功”, “订单群”)钉钉工具. 发送消息 (“服务器CPU使用率90%”, “运维群”) |
| spec | | json | (未知支持库) | | internet | | EThread | | dp1 |
|
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。 友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。 快捷通道:申请荣誉值 →
|