当前位置: 首页 > ds >正文

定时通知群内值班人功能

from app.external.zhiban import default_zhiban_api_client
import requests
import json
from datetime import datetimedef send_daily_reminder():# app_map = [#     {"name": "平台-存储云平台服务号", "type": "app"},#     {"name": "MySQL/TiDB-DBA服务号", "type": "app"},#     {"name": "Redis-Redis服务号", "type": "prd"},#     {"name": "RedKV-RedKV服务号", "type": "prd"},#     {"name": "RedTable-RedTable服务号", "type": "prd"},#     {"name": "RedDTS-RedDTS服务号", "type": "app"},#     {"name": "RedTAO-RedTAO服务号", "type": "app"},# ]app_map = [{"name": "base.db", "type": "app", "display_name": "平台-存储云平台服务号"},{"name": "base.db.db-all", "type": "app", "display_name": "MySQL/TiDB-DBA服务号"},{"name": "base.redis", "type": "prd", "display_name": "Redis-Redis服务号"},{"name": "base.redkv", "type": "prd", "display_name": "RedKV-RedKV服务号"},{"name": "base.redtable", "type": "prd", "display_name": "RedTable-RedTable服务号"},{"name": "base.db.red-dts", "type": "app", "display_name": "RedDTS-RedDTS服务号"},{"name": "base.redtao.redtao-manage", "type": "app", "display_name": "RedTAO-RedTAO服务号"},]platform_duty_map = {}all_duty_users = set()  # 用于收集所有值班人for item in app_map:platform_name = item['name']print(f"处理应用 {platform_name} 的值班信息")platform_duty_map[platform_name] = {'primary': None}response = default_zhiban_api_client.get_zhiban_by_app(item["name"], item["type"])if response:if response.get('user'):user_id = response['user']['user_id']platform_duty_map[platform_name]['primary'] = user_idall_duty_users.add(user_id)print(f"添加主值班人: {user_id}")if not platform_duty_map:print("今日无值班人")return# 获取当前日期current_date = datetime.now().strftime('%Y年%m月%d日')# 构建消息内容message_parts = [f"{current_date}值班安排:"]  # 添加日期信息for platform, duty_info in platform_duty_map.items():display_name = next((item['display_name'] for item in app_map if item['name'] == platform), platform)platform_msg = f"\n{display_name}:"if duty_info['primary']:# 使用 <@邮箱> 格式platform_msg += f"\n主值班人: <@{duty_info['primary']}>"message_parts.append(platform_msg)content = "\n".join(message_parts)# 构建请求数据webhook_url = "c6c5-4100-b42d-1456664f0538"data = {"msgtype": "text","text": {"content": content,}}# 发送消息try:response = requests.post(webhook_url,headers={'Content-Type': 'application/json'},data=json.dumps(data))response.raise_for_status()print("值班提醒已发送")except Exception as e:print(f"发送提醒失败: {str(e)}")

http://www.xdnf.cn/news/10959.html

相关文章:

  • POJO,DTO,VO和Model
  • 深入解读 MCP(Model Context Protocol):大模型时代的“操作系统协议”
  • js-day7
  • 快速了解GO+ElasticSearch
  • Impromptu VLA:用于驾驶视觉-语言-动作模型的开放权重和开放数据
  • Mac 芯片系列 安装cocoapod 教程
  • 机器学习——SVM
  • 前端基础之《Vue(18)—路由知识点》
  • 【操作系统原理08】文件管理
  • git管理github上的repository
  • 深入解析ReactJS中JSX的底层工作原理
  • OpenCV CUDA模块特征检测------角点检测的接口createMinEigenValCorner()
  • React 项目初始化与搭建指南
  • 算法/机理模型演示平台搭建(二)——算法接口部署(FastApi)
  • 算法训练第七天
  • Web后端快速入门(Maven)
  • TDengine 的 AI 应用实战——运维异常检测
  • Ubuntu22.04安装MinkowskiEngine
  • 灵活运用 NextJS 服务端组件与客户端组件
  • vue-14(使用 ‘router.push‘ 和 ‘router.replace‘ 进行编程导航)
  • Walle-Web:打造轻量级高效的DevOps自动化部署平台
  • Vue混入
  • 种草平台:重新定义购物的乐趣革命
  • 北京大学肖臻老师《区块链技术与应用》公开课:07-BTC-挖矿难度
  • 基于LEAP模型在能源环境发展、碳排放建模预测及分析中实践应用
  • 论文分类打榜赛Baseline:ms-swift微调InternLM实践
  • 常用工具推荐---QQ截图功能、iLovePDF与Pandoc
  • 云服务器部署Gin+gorm 项目 demo
  • python调用硅基流动的视觉语言模型
  • 自然语言处理(NLP)的系统学习路径规划