策略自动恢复
Strategy Auto-Resume
进程重启后自动恢复运行中的策略,保持仓位状态连续性
子问题
1.运行状态持久化
2.重启后策略扫描
3.配置还原与 ID 注入
4.仓位状态连续性
5.并发恢复调度
6.决策周期编号续接避免历史记录冲突
7.恢复候选的多条件联合过滤(状态+停止原因)
8.恢复与正常创建的编排器零耦合设计
各项目的解法1 solutions
Signals
横向对比
| 维度 | ValueCell |
|---|---|
| 恢复触发机制 | FastAPI startup 事件 + 全局幂等标志守卫 |
| 状态持久化 | SQLAlchemy ORM + JSON 列存储完整 UserRequest 配置 |
| 候选过滤逻辑 | 二态状态机 + StopReason 元数据联合判定 |
| ID 连续性 | strategy_id_override 注入复用原 ID 保持仓位绑定 |
| 资金恢复 | 从 portfolio_snapshots 表读取最近快照初始化内存 |
| 并发恢复 | asyncio.create_task + gather 并行恢复所有候选 |
| 编排器耦合度 | 零耦合:恢复走正常 process_user_input 流程 |
最佳实践
1.SQLite 持久化策略状态
2.strategy_id 注入保持仓位连续
3.fire-and-forget 异步恢复
4.二态状态机+元数据存储停止原因避免状态爆炸
5.恢复走正常编排流程保持编排器无感知
6.全局幂等标志防止 startup 事件重复触发恢复