const fs = require('fs') const path = require('path') process.chdir('d:/Trae_Files/TRAE-Toolbox') const db = require(path.join(process.cwd(), 'src/server/mp_rep_clock/db')) const locks = require(path.join(process.cwd(), 'src/server/mp_rep_clock/locks.js')) console.log('=== 1. 锁表当前值 ===') console.log(JSON.stringify(locks.getLockState(), null, 2)) console.log('\n=== 2. rc_sessions 最近 5 条 ===') const rows = db.getDb().prepare(`SELECT id, status, card_id, ended_at, created_at, updated_at FROM rc_sessions WHERE deleted=0 ORDER BY datetime(created_at) DESC LIMIT 5`).all() rows.forEach(r => console.log(' -', JSON.stringify(r))) console.log('\n=== 3. 直接调 reserveRunningLock 看新版逻辑是否加载(看是否返回 expiresInMs + expiredLockCleared)===') const testSid = 'rc_session_test_' + Math.random().toString(36).slice(2, 10) const result = locks.reserveRunningLock(testSid, 'rep_clock') console.log(JSON.stringify(result, null, 2)) console.log('新版字段校验:result.expiresInMs =', result && result.expiresInMs, typeof result && result.expiresInMs) console.log('新版字段校验:result.expiredLockCleared =', result && result.expiredLockCleared, typeof result && result.expiredLockCleared) console.log('\n=== 4. 回滚:删除测试锁(如果创建成功) ===') if (result && result.ok) locks.resetRunningLock() console.log('回滚后锁表:', JSON.stringify(locks.getLockState()))