feat(order): 订单超时自动流转改为后台定时任务
- 新增 startOrderTimeoutScheduler:默认每 60s 扫描(ORDER_TIMEOUT_SCAN_MS 可配,DISABLE_ORDER_TIMEOUT_SCAN=1 可禁用),带防重入与 unref - 启动时自动开启;移除订单查询接口里的被动扫描,避免每次请求触发 - 文档补充定时扫描环境变量;新增回归护栏 order-timeout-scheduler.spec.ts(83 套件/622 用例全绿)
这个提交包含在:
@@ -1297,7 +1297,7 @@ export class MysqlRepository {
|
||||
|
||||
// 订单相关
|
||||
async getOrders(): Promise<any[]> {
|
||||
await this.processOrderTimeouts().catch(() => {});
|
||||
// 订单超时自动流转统一由后台定时任务处理(见 index.ts startOrderTimeoutScheduler)
|
||||
const [rows]: any = await pool.query(`
|
||||
SELECT
|
||||
id,
|
||||
@@ -1335,7 +1335,7 @@ export class MysqlRepository {
|
||||
*/
|
||||
async getOrdersForUser(userId: number): Promise<any[]> {
|
||||
const uid = Number(userId) || 0;
|
||||
await this.processOrderTimeouts().catch(() => {});
|
||||
// 订单超时自动流转统一由后台定时任务处理(见 index.ts startOrderTimeoutScheduler)
|
||||
const [rows]: any = await pool.query(`
|
||||
SELECT
|
||||
id,
|
||||
|
||||
在新工单中引用
屏蔽一个用户