Appearance
Activation / Cash Flow Bulk 同步
概述
Activation Flow 用于收集文档/任务后进入同步阶段。后台 FlowSyncRunnerService 可消费 FlowSyncTask(type=cash_flow_bulk),调用 POST /cash-flows/bulk。
现状(代码实查):Runner 与 Client 方法已实现,但 FlowRunService.createCashFlowSyncTask 在仓库内无其它入队调用方;Document apply 也未 enqueue。因此 finalize 时若无 pending 任务会直接标记 completed。手工验证可用 apps/api/scripts/dtms-cashflow-live.ts。
触发入口
| 动作 | HTTP / 后台 |
|---|---|
| Finalize activation | POST /api/flows/activation/finalize |
| Retry / Cancel | Flows 相关 retry/cancel API |
| 后台 Runner | FlowSyncRunnerService(~5s + lock poll:flow-sync-runner) |
参与方
- Client、
api-gateway、FlowRunService FlowSyncRunnerService、DtmsAuthService、DtmsClient- Redis、DTMS、
FlowRun/FlowSyncTask表
业务流程图
加载图表…
时序图(设计路径 / Runner 已实现)
加载图表…
DTMS API 对照
| 步骤 | Liquia | HTTP | Path | Bearer | 挂接状态 |
|---|---|---|---|---|---|
| Bulk 创建 CF | bulkCreateCashFlows | POST | /cash-flows/bulk | 是 | Runner 消费;入队路径缺失 |
| 搜索 CF | searchCashFlows | POST | /cash-flows/search?... | 是 | 未挂接 |
| 搜索工具 | searchCashFlowInstruments | POST | /cash-flow-instruments/search | 是 | 未挂接 |
本地数据影响
FlowRun:collecting → awaiting_apply → syncing → completed / sync_failedFlowSyncTask:type='cash_flow_bulk',payload 含 DTMS cashFlowsCashFlow.dtmsCashFlowId(若其它路径写入)
异常与补偿
- Runner:指数退避(base ~30s);耗尽 → task failed → flow
sync_failed - 文档中如实标注「入队未接线」,避免读者以为生产主路径已跑通 bulk
源码索引
apps/api/src/orchestration/flows/flow-run.service.tsapps/api/src/orchestration/flows/flow-sync-runner.service.tsapps/api/scripts/dtms-cashflow-live.ts- Flows controller