NotificationTemplate 框架文档
模块路径: FQBase.Core.notification_template源码: [notification_template.py](file:///Users/A.D.189/FQuant/FQuant.Server/FQBase/FQBase/Core/notification_template.py)
一、概述
1.1 什么是通知模板
NotificationTemplate 是 FQBase 框架的通知消息模板模块,提供标准化的消息格式化方案。
解决的问题:
- 消息格式不统一,导致用户阅读困难
- 通知内容随意,缺乏一致性
- 跨渠道消息格式难以管理
核心价值:
- 统一格式:所有通知遵循相同的结构化格式
- 变量驱动:消息内容由数据动态渲染,避免字符串拼接
- 渠道兼容:同一模板可适配不同通知渠道
1.2 模板与通知的关系
┌─────────────────────────────────────────────────────────────────┐
│ 应用层代码 │
│ NotificationTemplate.render('trade_signal', code='000001') │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ NotificationTemplate (模板渲染) │
│ 1. 根据模板名称查找预设/自定义模板 │
│ 2. 使用传入的变量渲染模板 │
│ 3. 返回格式化的消息字符串或结构化字典 │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Notification (通知发送) │
│ sendWechat(message, channel='DEFAULT') │
│ manager.send(message, channel='HIGH') │
└─────────────────────────────────────────────────────────────────┘使用场景:
- 推荐:使用
NotificationTemplate.render()渲染消息 → 发送给用户 - 直接发送:简单消息可直接调用
sendWechat("纯文本内容")
1.3 何时使用模板
| 场景 | 推荐方式 | 原因 |
|---|---|---|
| 交易信号通知 | 模板 | 固定格式,包含多个变量 |
| 系统告警 | 模板 | 需要统一格式,便于解析 |
| 简单成功/失败提示 | 直接发送 | 格式简单,无需模板 |
| 定时心跳通知 | 模板 | 格式固定,定期发送 |
二、核心特性
| 特性 | 说明 |
|---|---|
| 预设模板 | 内置多种常用通知模板 |
| 模板注册 | 支持自定义模板注册和注销 |
| 渲染机制 | 支持变量替换和格式化输出 |
| 字典输出 | 支持渲染为结构化字典 |
| 全局单例 | 模块级注册表单例 |
| 快捷访问 | NotificationTemplate 快捷类 |
三、预设模板类型
| 模板名称 | 说明 | 级别 |
|---|---|---|
trade_signal | 交易信号 | info |
risk_alert | 风险预警 | warning |
system_error | 系统异常 | error |
order_update | 订单更新 | info |
position_update | 持仓更新 | info |
account_update | 账户更新 | info |
backtest_complete | 回测完成 | info |
data_alert | 数据警告 | warning |