重构交易相关逻辑,优化异步任务处理,更新支付状态查询逻辑

This commit is contained in:
2025-06-03 09:53:50 +08:00
parent 41dcc14f5f
commit a9de63c3f9
9 changed files with 239 additions and 219 deletions

View File

@@ -1,5 +1,13 @@
## TODO
创建交易订单后添加一个关闭订单的异步任务
支付回调需要判断可能重复调用的情况
实现订单状态查询的 SSE 接口
考虑将重复量比较大的异步任务修改成定时调度任务
### 长期
模型字段修改,特定枚举字段使用自定义类型代替通用 int32
@@ -8,28 +16,16 @@
## 业务逻辑
### 代理服务与节点的增量更新
### 支付处理流程
代理服务定时提交增量更新数据包,格式为:
1. 创建订单,推送异步检查任务
2. sse 接口推送订单状态
| version(1) | proxy_id(4) | count(2) | edge_id(4) | mask(1) | info(...) |
|------------|-------------|----------|------------|---------|-----------|
| 数据包版本 | 代理服务 id | 更新的节点数量 | 节点 id | 节点更新项 | 节点更新内容 |
- 支付回调更新支付状态
- 异步任务更新支付状态
- 主动查询更新支付状态
其中 mask 部分,每个位代表一个节点更新项,具体如下:
| 位数(从前到后) | 节点更新项 |
|----------|----------|
| 0 | 保留位,预留扩展 |
| 1 | 空,固定为 0 |
| 2 | 空,固定为 0 |
| 3 | 端口 |
| 4 | 省份 |
| 5 | 城市 |
| 6 | 运营商 |
| 7 | 状态 |
节点更新的具体内容大小视数据结构而定
更新支付状态后,缓存结果以便查询
### 产品字典表
@@ -37,14 +33,3 @@
|-------|------|
| short | 短效代理 |
| long | 长效代理 |
## 业务流程
### 短效动态
1. 获取远端连接配置
2. 查询并计算实际连接状况
3. 每个网关:
1. 根据负载分配算法,计算是否需要为此网关分配新的连接
2. 如果需要新的连接且预计连接数大于已配置的连接数,则更新远端连接配置
3. 为新增连接分配可用端口,并更新网关端口配置