docs(guide): 补定时任务(@Cron)说明
Some checks are pending
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
liuyun 2026-10-11 22:43:33 +08:00
parent 28ecacdd42
commit 207ccd1547

View File

@ -194,6 +194,18 @@ list(@Query() q: PageQuery) { return this.service.paginate(q.page, q.pageSize) }
- **账号锁定**:`user.locked_at` / `lock_reason` 独立于 `status`(停用);管理员锁定即踢全部会话,解锁同时清登录失败计数。
- **在线会话**:会话 = `refresh_token`,`sid` 标识单次登录(刷新轮换沿用同一 `sid`);`GET /sessions` 列活跃会话,`POST /sessions/:sid/kick` 单会话强退(吊销 refresh + sid 黑名单),`POST /users/:id/kick-sessions` 踢全部(复用 `tokenVersion`)。
### 2.9 定时任务
用 `@nestjs/schedule` 的 `@Cron` 声明定时任务;`ScheduleModule.forRoot()` 已在 `app.module.ts` 注册。现有任务:[`src/common/cleanup.service.ts`](../sources/sysmgr-nest/src/common/cleanup.service.ts) 每天 03:07 清理过期/吊销的 refresh token 与超过 90 天的审计/登录日志。
**新增定时任务**:
1. 新建 service,方法挂 `@Cron('秒 分 时 日 月 周')`(cron 表达式,如 `@Cron('0 3 * * *')` 每天 03:00);
2. 在 `app.module.ts` 的 `providers` 注册该 service;
3. 任务体内 `try/catch` 并记录日志(失败不抛出,避免 Cron 中断)。
> 本期定时任务仅清理一个,暂不做「任务注册表 + 界面手动触发」;有需要再扩展。
---
## 3. 前端开发指南(sysmgr-admin)