d2e8476398
Motivation: 止盈、止损等不同策略信号会映射到同一事件(如 trade.close),但原有唯一约束要求每个事件只能有一条规则,无法按策略区分处理。放开该约束后,同一事件可配置多条规则,通过规则条件与精确/通配优先级区分,命中条件的规则全部发送;同时将去重键从消息原文改为信号维度,避免同一信号因时间戳等无关字段差异被误判为重复。 Changes: * 移除规则 source_id+event 的唯一约束,改为普通索引 * 事件匹配改为返回命中优先级内所有启用规则,并按 ID 逐条派发 * 通知服务遍历多条规则,按条件过滤后聚合发送渠道 * 去重键由消息 body 哈希改为策略/币种/周期/方向/价格信号维度哈希
70 lines
1.8 KiB
YAML
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
|