fix: 定时任务修复+管理后台Task7支持 (Task4外键修复, Task7管理员邮箱动态查询, Task5限流防护, Task7加入SCRIPT_MAP)
This commit is contained in:
@@ -78,6 +78,8 @@ AI发现模块是追光AI的核心功能,采用"提示词+JSON粘贴导入"模
|
||||
### Logo本地存储 (`src/lib/logo-storage.ts`)
|
||||
- `downloadLogo(url, filename): Promise<string>` — 下载Logo到 `/public/logos/` 目录
|
||||
- 返回本地路径如 `/logos/filename.png`
|
||||
- **安全限制**: 最大文件大小 5MB,SVG 内容自动消毒 script/iframe/on-event 标签
|
||||
- **文件名**: 使用 SHA256 哈希生成(不再使用 MD5)
|
||||
|
||||
## 自动化评测流程
|
||||
|
||||
@@ -117,6 +119,17 @@ Crontab(6个定时) → 脚本执行(Node.js .mjs) → 外部API调用(GitHub/De
|
||||
后台管理 /admin/tasks → 查看配置/状态/历史/手动触发
|
||||
```
|
||||
|
||||
### 环境要求
|
||||
- 所有脚本启动时验证 `DEEPSEEK_API_KEY` + `DATABASE_URL` 存在性
|
||||
- DeepSeek 调用统一使用 `AbortSignal.timeout(120000)` + `withRetry` 重试(指数退避 1s → 2s,最多3次)
|
||||
- DeepSeek 模型名通过环境变量 `DEEPSEEK_MODEL` 配置(默认 `deepseek-v4-pro`)
|
||||
- GitHub Octokit 配置 `request.timeout: 30000`,配合 withRetry 重试
|
||||
- GitHub API 调用需设置 `GITHUB_TOKEN` 环境变量认证(限流从 60→5000次/小时)
|
||||
|
||||
### skill-discoverer.ts N+1 优化
|
||||
- **修复前**: 每个 repo 执行 3 次 DB 查询 + 每次 guessCategoryId 查一次分类 → ~360次/次发现
|
||||
- **修复后**: 循环前批量预加载 sourceUrl/slug/分类到内存 Set → ~22次/次发现(↓94%)
|
||||
|
||||
### 7个任务总览
|
||||
|
||||
| # | 任务 | 脚本 | Cron | 依赖外部API | 产量 |
|
||||
|
||||
Reference in New Issue
Block a user