fix: tolerate transient collect login checks
This commit is contained in:
+5
-2
@@ -3,7 +3,7 @@ id: T-563
|
||||
title: ①采集中途登录检测容错,避免 NO_SESSION_COOKIE 误判批量略过
|
||||
phase: 2
|
||||
deps: [T-207, T-560, T-562]
|
||||
status: TODO
|
||||
status: DONE
|
||||
created: 2026-07-08
|
||||
---
|
||||
|
||||
@@ -25,7 +25,7 @@ created: 2026-07-08
|
||||
- 采集前预检中的 `NO_SESSION_COOKIE` 应增加短暂重试,避免刚启动 Chrome 或页面尚未稳定时误判。
|
||||
|
||||
2. **中途登录检测改为容错判定**
|
||||
- 在 `CollectWorker` 中封装中途登录检测确认逻辑,例如 `_midrun_login_status(account)`。
|
||||
- 在 `CollectWorker` 中封装登录检测确认逻辑,例如 `_confirmed_login_status(account, context, task=None)`。
|
||||
- 对 `NO_SESSION_COOKIE`、`LOGIN_CHECK_FAILED`、CDP 读取异常等不确定结果,等待短暂间隔后重试 2-3 次,并把每次 reason、URL、cookie 名称列表写入运行日志或诊断日志;不得记录 Cookie 值。
|
||||
- 只有明确检测到登录页 URL / `LOGIN_PAGE` 时,才把该账号加入 `login_skip_reasons`,并跳过该账号后续任务。
|
||||
- 连续 `NO_SESSION_COOKIE` 仍视为“不确定”,不批量略过后续任务;继续尝试当前商品采集,让 `open_product()` 的真实页面结果决定成功或失败。
|
||||
@@ -61,3 +61,6 @@ created: 2026-07-08
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 2026-07-08:完成。`CollectWorker` 增加登录检测重试与明确/不确定判定:`LOGIN_PAGE` 或登录页 URL 才整组略过;`NO_SESSION_COOKIE`、`LOGIN_CHECK_FAILED`、CDP 短暂异常重试后仍不确定时继续采集当前商品,不缓存到同账号后续任务。已同步 `docs/04-architecture.md` 和 `docs/routes.md`。
|
||||
- 2026-07-08:补充单测覆盖中途 `NO_SESSION_COOKIE` 重试成功、连续 `NO_SESSION_COOKIE` 不略过、`LOGIN_CHECK_FAILED` 不批量略过、预检 `NO_SESSION_COOKIE` 不整组略过、明确 `LOGIN_PAGE` 仍整组略过。
|
||||
- 2026-07-08:验证通过:`python -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`py -3.10 -m unittest discover -s tests`、`git diff --check`。
|
||||
|
||||
Reference in New Issue
Block a user