From cba14eae25603125adde11aa626fe4dc859108db Mon Sep 17 00:00:00 2001 From: RRRosmontis Date: Wed, 23 Sep 2026 12:03:46 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=83=A8=E7=BD=B2=E4=B8=8E=E8=BF=90?= =?UTF-8?q?=E7=BB=B4=E8=A1=A5=E5=85=85=20attempts=20=E9=80=90=E6=AC=A1?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/部署与运维.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/部署与运维.md b/docs/部署与运维.md index 6ab541c..7f38dcf 100644 --- a/docs/部署与运维.md +++ b/docs/部署与运维.md @@ -138,7 +138,7 @@ - dufe 签到服务新增 **`&mode=auto`**(url 参数可省略):SSO 登录一次后复用登录态 → 拉取通知列表(`GET /student/message/getMessageAll` pageSize=20/readFlag=0 + `POST /student/busiMessage/list`)→ 按 bot ginkgo 同款规则发现活动(仅互动消息、文本含"签到"、jumpUrl 可解析为 `/course/detail/.../signin//`,query 不入库,按 signInId 去重)→ 按时间序逐个自动签到 - **连续重试**:每活动首次 + 最多 5 次重试、间隔 3 秒(`MAX_SIGNIN_ATTEMPTS=6` / `SIGNIN_BACKOFF=(3,3,3,3,3)`,对齐 bot);上游错误/登录错时重登录一次立即重试(对齐 bot `_call_sign_in_local` 的 refresh 语义);**除限流外任何未确认成功都消耗重试次数**(对齐 bot `complete_signin`);限流即中断本轮,已完成结果照常返回(`data.rate_limited=true`) -- **结果聚合**:`data.results` 列表逐活动返回(activityKey/signInId/type/typeName/title/signInCode/status/success/message/attempts),另附 total/succeeded/failed/activities 计数 +- **结果聚合**:`data.results` 列表逐活动返回(activityKey/signInId/type/typeName/title/signInCode/status/success/message/attempts),另附 total/succeeded/failed/activities 计数;**`attempts` 为逐次完整记录列表**(每次尝试 `{"n", "success", "message"}`,relogin 后立即重试的那次带 `"relogin": true`;成功与重试用尽两种情况都携带全部尝试) - **与 bot ginkgo 非签到码签到逻辑比对后以 bot 为基准同步**: - 移植限流防护体系:`RateLimitedError` / `_RATE_MESSAGE` / `_RATE_CODES` / `is_rate_limited` / `_valid_retry_after` / `_LoginErrors` / `check_response` / `safe_error` / `_request`(原实现完全无限流检测) - `parse_course_url`:courseId 由 `\d+` 放宽为 `[0-9A-Za-z]+`,报错文案对齐