重构交易相关逻辑,优化异步任务处理,更新支付状态查询逻辑
This commit is contained in:
45
README.md
45
README.md
@@ -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. 为新增连接分配可用端口,并更新网关端口配置
|
||||
Reference in New Issue
Block a user