feat: add github spider md push and async task logging
This commit is contained in:
@@ -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] ...`
|
||||
- `已推送 GitHub:part-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
|
||||
|
||||
Reference in New Issue
Block a user