 cosoandClaude Opus 4.6
|
b14dbe8271
|
feat: 实现 Agent 调度器系统
实现完整的 Agent 任务调度系统,支持定时任务、批量处理和后台持续运行。
## 新增功能
### 1. proxycast-scheduler Crate
- 创建独立的调度器 crate
- 实现 SchedulerTrait 接口
- 支持任务 CRUD 操作
- 任务持久化到 SQLite
### 2. 数据模型
- ScheduledTask: 调度任务结构
- TaskStatus: 任务状态枚举 (Pending, Running, Completed, Failed, Cancelled)
- TaskFilter: 任务查询过滤器
### 3. AgentScheduler
- 实现调度器核心逻辑
- 支持任务创建、查询、更新、删除
- 支持到期任务查询
- 自动状态管理
### 4. AgentExecutor
- 实现任务执行器
- 通过 CredentialBridge 自动选择凭证
- 支持多种任务类型:
- agent_chat: Agent 对话任务
- batch_process: 批量处理任务
- scheduled_report: 定时报告任务
- 自动标记凭证健康状态
### 5. SchedulerService (Heartbeat Loop)
- 实现心跳循环服务
- 每 30 秒轮询到期任务
- 自动执行到期任务
- 支持优雅启动和关闭 (CancellationToken)
- 集成到 Tauri setup
### 6. 数据库集成
- 创建 scheduled_tasks 表
- 添加索引 (status, scheduled_at, provider_type)
- 自动初始化表结构
## 技术实现
- 使用 tokio::spawn 启动后台任务
- 使用 tokio::time::interval 实现定时轮询
- 使用 tokio::select! 监听取消信号
- 完整的错误处理和日志记录
- 所有模块包含单元测试
## 文件清单
新增:
- src-tauri/crates/scheduler/Cargo.toml
- src-tauri/crates/scheduler/src/lib.rs
- src-tauri/crates/scheduler/src/types.rs
- src-tauri/crates/scheduler/src/dao.rs
- src-tauri/crates/scheduler/src/scheduler.rs
- src-tauri/crates/scheduler/src/executor.rs
- src-tauri/src/app/scheduler_service.rs
修改:
- src-tauri/Cargo.toml (添加 scheduler 依赖)
- src-tauri/src/app/mod.rs (导出 scheduler_service)
- src-tauri/src/app/setup.rs (集成调度器服务)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-02-09 21:47:52 +08:00 |
|