Files
aiaa-notification-server/config/config.yaml
T
ryan d2e8476398 feat(规则): 支持同一事件多规则按条件区分并全部发送
Motivation:
止盈、止损等不同策略信号会映射到同一事件(如 trade.close),但原有唯一约束要求每个事件只能有一条规则,无法按策略区分处理。放开该约束后,同一事件可配置多条规则,通过规则条件与精确/通配优先级区分,命中条件的规则全部发送;同时将去重键从消息原文改为信号维度,避免同一信号因时间戳等无关字段差异被误判为重复。

Changes:

* 移除规则 source_id+event 的唯一约束,改为普通索引
* 事件匹配改为返回命中优先级内所有启用规则,并按 ID 逐条派发
* 通知服务遍历多条规则,按条件过滤后聚合发送渠道
* 去重键由消息 body 哈希改为策略/币种/周期/方向/价格信号维度哈希
2026-08-17 01:20:49 +08:00

70 lines
1.8 KiB
YAML

server:
port: 8080
admin_key: "admin-sk-change-me"
database:
host: "mysql"
port: 3306
user: "root"
password: "${DB_PASSWORD:-notify}"
database: "notification"
redis:
host: "redis"
port: 6379
password: "XBAG3pjZbYxZpTWA"
db: 0
smtp:
host: "smtp.mailersend.net"
port: 587
user: "MS_hqXDZ6@516886.xyz"
password: "${SMTP_PASSWORD:-}"
# MailerSend 要求 from 域名已验证;未验证 516886.xyz 前先用试用域名
from: "Notification Service <MS_hqXDZ6@516886.xyz>"
rate_limit:
default: 100
# 钉钉自定义机器人官方上限 20/分钟,超限封 10 分钟;本地默认 18 留余量
dingtalk_per_min: 18
logbull:
host: "https://log.516886.xyz"
project_id: "42a3fef0-2fd6-4ce4-80c5-f6bb6ecc2013"
api_key: "lb_60701971723797ed0374aa3896078fe5"
log_level: "INFO"
# 多队列重复消息按策略/币种/周期/方向/价格去重;有 Redis 时跨进程共享
subscription_dedup_ttl: 1h
subscriptions:
- name: trade-signal
url: "${RABBITMQ_URL}"
queue: trade.signal.notify.queue
dead_letter_queue: trade.signal.notify.dlq
exchange: trade.signal.executor.queue
exchange_type: fanout
routing_key: ""
max_retry: 3
source: trade-signal
formatter: trade_signal
strategy_overrides:
BLONG:
quantity_multipliers:
open: 100
add: 100
reduce: 100
close: 100
leverage: 100
- name: crypto-strategy
url: "${RABBITMQ_URL}"
# 独立队列,不订 executor 队列,避免和 consumer.strategy 抢消息
queue: crypto.strategy.signal.notify.queue
dead_letter_queue: crypto.strategy.signal.notify.dlq
exchange: crypto.strategy.topic
exchange_type: topic
routing_key: strategy.signal
max_retry: 3
source: crypto-strategy
formatter: crypto_strategy