feat: add github spider md push and async task logging

This commit is contained in:
www
2026-04-19 19:37:53 +08:00
parent e8688443e5
commit fccd2bfe5b
12 changed files with 970 additions and 11 deletions

View File

@@ -258,6 +258,148 @@ curl -L -s 'https://example.com/detail/pinyin-xxx' | rg -o '<title>.*?</title>|<
如果其它服务器也同步了 [ExceptionHandle.php](/www/wwwroot/diff-maccms/SEONexus/code/app/ExceptionHandle.php),下次再出现:
## 9. 蜘蛛池 MD 远程推送补充说明
如果其它服务器也要同步“蜘蛛池 MD 自动生成 + 远程推送”,这次已经支持:
1. Gitee 推送
2. GitHub 推送
3. 计划任务自动生成
### 9.1 后台系统配置里现在能看到的 GitHub 参数
进入“系统配置”后,搜索 `SPIDER_MD_GITHUB`,应该能看到:
1. `SPIDER_MD_GITHUB_ENABLED`
- `0` 表示关闭
- `1` 表示开启
2. `SPIDER_MD_GITHUB_OWNER`
- 仓库所属用户名或组织名
- 例如:`yourname`
3. `SPIDER_MD_GITHUB_REPO`
- 仓库名,不带 owner
- 例如:`seo-spider-md`
4. `SPIDER_MD_GITHUB_BRANCH`
- 目标分支
- 默认建议:`main`
5. `SPIDER_MD_GITHUB_ROOT`
- 仓库内子目录
- 默认可填:`seo-spider-md`
- 如果想直接写仓库根目录,可以留空
6. `SPIDER_MD_GITHUB_TOKEN`
- GitHub Token
- 建议使用细粒度 Token
- 至少给当前仓库 `Contents: Read and write`
### 9.2 最小可用配置
如果只想先跑通 GitHub 推送,最少需要填:
1. `SPIDER_MD_GITHUB_ENABLED=1`
2. `SPIDER_MD_GITHUB_OWNER`
3. `SPIDER_MD_GITHUB_REPO`
4. `SPIDER_MD_GITHUB_BRANCH`
5. `SPIDER_MD_GITHUB_ROOT`
6. `SPIDER_MD_GITHUB_TOKEN`
注意:
1. 只开 `ENABLED=1` 但没填 owner / repo / token不会真正推送成功
2. `root` 只是远程目录,不是本地目录
3. GitHub 和 Gitee 可以并行开启,互不冲突
### 9.3 计划任务怎么接
这次已经补了计划任务种子命令:
```bash
php think plan:seed:domain-spider-md
```
作用:
1. 自动写入一条 `GENERATE_DOMAIN_SPIDER_MD` 计划任务
2. 默认是 `禁用` 状态,不会一落地就乱跑
3. 你可以进后台计划任务页再手工启用
执行逻辑:
1. 任务 code`GENERATE_DOMAIN_SPIDER_MD`
2. 任务内容:生成蜘蛛池 MD
3. 如果配置了 Gitee / GitHub就会同步推送远程文件
### 9.4 其它服务器上线后先验什么
至少先验下面 4 件事:
1. 后台系统配置能搜到 `SPIDER_MD_GITHUB_*`
2. 执行一次蜘蛛池 MD 生成后,摘要里能看到 GitHub 配置状态
3. 若已填 Token生成记录里能看到 GitHub 推送结果
4. 若开了计划任务,后台计划任务列表里能看到 `GENERATE_DOMAIN_SPIDER_MD`
### 9.5 如果后台看不到 GitHub 配置项
优先排查:
1. 是否已同步 [SpiderMdConfigHelper.php](/www/wwwroot/diff-maccms/SEONexus/code/app/common/helper/SpiderMdConfigHelper.php)
2. 是否已同步 [SystemConfig.php](/www/wwwroot/diff-maccms/SEONexus/code/app/admin/controller/SystemConfig.php)
3. 是否打开过一次“系统配置”列表页
当前版本里,系统配置列表页会自动把 `SPIDER_MD_GITHUB_*``SPIDER_MD_GITEE_*` 默认项补进数据库。
## 10. Spider MD 异步任务窗口补充说明
这次还额外补了 `Spider MD` 的异步任务消费器。
意义是:
1. 后台点“生成并推送 / 强制重生成”后,不再只是创建一个 `queued` 任务
2. 任务会真正进入 `running`
3. 前台任务窗口会持续看到:
- 当前阶段
- 进度百分比
- 实时日志
- 失败原因
### 10.1 这次同步时必须注意的文件
- [DomainImportAsyncTaskLogic.php](/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/DomainImportAsyncTaskLogic.php)
如果漏掉这个文件,现场最常见的表现就是:
1. 后台按钮点了
2. 任务号也出来了
3. 但状态一直停在 `queued`
4. 进度条始终 `0%`
5. 日志窗口只显示“任务已入队,等待执行”
### 10.2 现场正确现象
同步后Spider MD 任务窗口里应该能看到:
1. `status: running`
2. `progress_percent` 持续变化
3. 日志里出现:
- 已载入多少个域名
- `[1/32] ... [2/32] ...`
- `已推送 GitHubpart-001.md`
- 如果失败,会直接显示失败原因
### 10.3 后台复制体验补充
这次 Vue 后台还补了:
1. 主表右侧固定 `一键复制MD`
2. 复制内容只保留 `.md` 直链
3. 不再复制 `summary.json / summary.html`
如果其它服务器更新后发现:
1. 要横向滚很远才能看到按钮
2. 复制出来的是页面链接不是 md 直链
说明 `SEONexusAdmin` 最新代码还没有同步到位。
1. 先记下精确时间
- 例如:`2026-04-18 14:23:15 +08:00`
2. 记下完整 URL