feat: 修复停止逻辑

This commit is contained in:
祁连海
2026-04-17 23:29:10 +08:00
parent adf0cccd77
commit 73f9deb53e
12 changed files with 460 additions and 63 deletions
+13 -8
View File
@@ -121,6 +121,7 @@
- 当前邮箱 / 密码
- localhost 回调地址
- 自动运行轮次信息
- 当前自动运行 session 标识 `autoRunSessionId`
- 标签注册表
- 最近打开的来源地址
- LuckMail 当前运行时选择
@@ -179,6 +180,7 @@
- 页面切换导致脚本暂时失联时,后台不会立刻误判彻底失败
- 邮箱页或注册页能在注入恢复后继续执行
- 用户点击 Stop 后,标签完成等待、注入后的短暂延迟和内容脚本重试等待会尽快中断,不会因为底层轮询还在 sleep 而继续往下恢复
## 6. 手动步骤完整链路
@@ -230,7 +232,8 @@
4. 让内容脚本填写密码
5. 内容脚本先上报 Step 3 完成信号
6. 上报完成后再异步点击提交,避免页面跳转打断响应通道
7. 后台在真正确认 Step 3 完成前,会额外检查提交后是否切换页面;如果出现认证页 `Try again / 重试` 页面,会先自动点击 `重试` 恢复,再继续后续链路
7. 延迟提交真正触发前会再次检查 Stop 状态,避免用户已停止时页面仍继续自动提交
8. 后台在真正确认 Step 3 完成前,会额外检查提交后是否切换页面;如果出现认证页 `Try again / 重试` 页面,会先自动点击 `重试` 恢复,再继续后续链路
### Step 4 / Step 7
@@ -440,20 +443,22 @@
流程:
1. 读取总轮数与模式
2. 计算是否从中断点继续
3. 每轮执行前重置必要运行态
4. 执行 `runAutoSequenceFromStep`
2. 为本轮自动流程分配唯一 `autoRunSessionId`
3. 计算是否从中断点继续
4. 每轮执行前重置必要运行态
5. 执行 `runAutoSequenceFromStep`
- 步骤 7 内部仍保留登录态恢复的有限重试
- 一旦进入步骤 7~10,遇到普通报错且认证流程未进入 `add-phone`,则自动回到步骤 7 无限重开
- 如果是手动停止,则立即退出自动流程,不会再触发“回到步骤 7 重开”
5. 如果失败,根据设置决定:
6. 如果失败,根据设置决定:
- 立即停止
- 当前轮重试
- 下一轮继续
6. 当前轮最终失败时,写入邮箱记录,并在自动重试链路中累计重试次数
7. 当前轮最终失败时,写入邮箱记录,并在自动重试链路中累计重试次数
- 手动停止与自动停止会写入“停止”状态(若后续同邮箱成功/失败,会被覆盖为最新状态)
7. 如果配置了线程间隔,则挂计时计划
8. 所有轮次结束后输出汇总
8. 如果配置了线程间隔,则挂计时计划;计时计划会带上当前 `autoRunSessionId`
9. 旧 timer / 旧 alarm / 旧恢复入口只有在 session 仍有效时才允许恢复执行;Stop 会立即使当前 session 失效,防止“停止后旧倒计时又把流程重新拉起”
10. 所有轮次结束后输出汇总,并清空当前 session 标识
## 9. 新增功能时最容易漏掉的地方