feat(order): 订单超时自动流转改为后台定时任务

- 新增 startOrderTimeoutScheduler:默认每 60s 扫描(ORDER_TIMEOUT_SCAN_MS 可配,DISABLE_ORDER_TIMEOUT_SCAN=1 可禁用),带防重入与 unref

- 启动时自动开启;移除订单查询接口里的被动扫描,避免每次请求触发

- 文档补充定时扫描环境变量;新增回归护栏 order-timeout-scheduler.spec.ts(83 套件/622 用例全绿)
这个提交包含在:
xcbyy
2026-10-19 09:22:52 +08:00
父节点 99d1c018e6
当前提交 d665cd6976
共有 4 个文件被更改,包括 72 次插入 和 2 次删除

查看文件

@@ -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,