refactor: scheduler to JSON+cooldown, update SOP

This commit is contained in:
Jiaqing Liang
2026-03-11 12:11:22 +08:00
parent 5dc44ba637
commit 006b915533
4 changed files with 83 additions and 38 deletions

View File

@@ -1,13 +1,21 @@
# 定时任务 SOP
目录:`../sche_tasks/{pending,running,done}/`
文件名:`YYYY-MM-DD_HHMM_描述.md`内容含prompt和schedule
目录:`../sche_tasks/` 放任务定义JSON`../sche_tasks/done/` 放执行报告
## 流程
1. [AUTO]唤醒 → `datetime.now()`取当前时间,`ls ../sche_tasks/pending/`,文件名时间≤当前→到期,选择一个
2. **立即rename到running/**(先占再读,防多进程重复领)
3. 读文件执行
4. 完成→移到done/**在文件内追加执行报告**供用户查阅
5. schedule非once→算下次时间新建文件到pending/
## 任务JSON格式*.json
```json
{"schedule":"08:00", "repeat":"daily", "enabled":true, "prompt":"..."}
```
repeat可选daily | weekly | monthly | once | every_Nh每N小时| every_Nd每N天
注意sche_tasks目录在../即你的code root下
## 触发流程
1. scheduler.pyreflect/每60秒轮询 sche_tasks/*.json
2. 条件全满足才触发enabled=true + 当前时间≥schedule + 冷却时间已过基于done/最新报告时间戳)
3. 触发时拼prompt含报告路径 `../sche_tasks/done/YYYY-MM-DD_任务名.md`
4. **收到任务后第一件事**:用 update_working_checkpoint 记录报告目标文件路径,防止长任务执行中遗忘
5. 执行完毕后将报告写入上述路径scheduler靠此文件判断今天已执行
## 注意
- once类型执行一次后冷却100年实际效果为永久跳过
- 任务文件只管"干什么"报告路径由scheduler自动生成注入prompt
- sche_tasks目录在../即code root下