Skip to content

Notification 框架文档

模块路径: FQBase.Core.notification源码: [notification.py](file:///Users/A.D.189/FQuant/FQuant.Server/FQBase/FQBase/Core/notification.py)


一、概述

1.1 什么是通知服务

Notification 是 FQBase 框架的统一通知服务,支持多渠道通知发送,包括企业微信、Server 酱和 PushBear。

解决的问题

  • 通知发送代码分散在各处,难以统一管理
  • 渠道切换需要修改多处代码
  • 缺乏错误处理和重试机制

核心价值

  • 统一接口:通过 NotificationManager 提供一致的发送接口
  • 多渠道支持:一条消息可发送到多个渠道
  • 渠道分组:按业务场景划分通知渠道(交易、风控、系统等)

1.2 通知服务与模板的关系

┌─────────────────────────────────────────────────────────────────┐
│                      应用层代码                                   │
│   NotificationTemplate.render('trade_signal', code='000001')    │
└─────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│              NotificationTemplate (模板渲染)                      │
│   渲染消息内容,返回格式化的字符串                                │
└─────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│              Notification (通知发送)                              │
│   manager.send(message, channel='DEFAULT')                       │
│   sendWechat(message, channel='HIGH')                           │
└─────────────────────────────────────────────────────────────────┘

使用场景

  • 推荐:使用 NotificationTemplate.render() 渲染消息 → 发送给用户
  • 直接发送:简单消息可直接调用 sendWechat("纯文本内容")

1.3 渠道选择指南

渠道适用场景特点
DEFAULT通用通知默认渠道,配置简单
BOND债券相关债券行情、预警
HIGH重要告警紧急风控、重要订单
LIMIT涨跌停相关涨停板、跌停板监控
INS指标相关技术指标异动
SYSTEM系统通知系统运行状态

二、框架概述

2.1 模块简介

Notification 是 FQBase 框架的统一通知服务,支持多渠道通知发送,包括企业微信、Server 酱和 PushBear。

2.2 支持渠道

渠道说明配置
企业微信 (Wecom)支持多渠道WECOM_CORPID, WECOM_SECRET_*, WECOM_AGENTID_*
Server 酱第三方推送SERVERCHAN_KEY
PushBear第三方推送PUSHBEAR_KEY

2.3 核心特性

特性说明
多渠道支持企业微信、Server 酱、PushBear
单例模式NotificationManager 全局唯一
线程安全所有操作线程安全
多渠道发送send_all() 向所有渠道发送
渠道分组支持 DEFAULT/BOND/VOL_PRICE/HIGH/LIMIT/INS/SYSTEM
兼容旧接口提供 sendWechat 等兼容函数