refactor: 调度服务端改为控制台架构,借助现有H ost架构和分布式缓存架构
|
# 功能清单 — AntJob 蚂蚁调度
> 版本:v4.4 | 日期:2026-07-20 | 基于代码全量扫描
>
> 编码方案:字母前缀(SYS/DATA/EXT/SRV/WEB/AGT/TST)
> 状态:✅ 已完成 / 🟡 部分完成 / ❌ 未完成 / `—` 不适用
---
## ⛔ 拆分决策表(强制步骤 §2.1.5)
| 需求项 | 原因 | 拆分结果 |
|--------|:----:|---------|
| 应用系统管理 | 前后端 | WEB-3a 应用系统管理接口 + WEB-3b 应用系统管理页面 |
| 作业管理 | 前后端 | WEB-4a 作业管理接口 + WEB-4b 作业管理页面 |
| 任务管理 | 前后端 | WEB-5a 任务管理接口 + WEB-5b 任务管理页面 |
| 在线实例管理 | 前后端 | WEB-6a 在线实例接口 + WEB-6b 在线实例页面 |
| 操作历史管理 | 前后端 | WEB-7a 操作历史接口 + WEB-7b 操作历史页面 |
| 消息管理 | 前后端 | WEB-8a 消息管理接口 + WEB-8b 消息管理页面 |
| 错误管理 | 前后端 | WEB-9a 错误管理接口 + WEB-9b 错误管理页面 |
> 不拆分项不列入此表。Web 管理后台项目,每个 Cube EntityController 默认前后端拆分(§2.1.5 规则1)。
---
## 统计
| 模块 | 功能数 | 实现 ✅ | 测试 ✅ | 注释 ✅ | `—` 不适用 | 完成率 |
|------|:------:|:------:|:------:|:------:|:---------:|:------:|
| SYS 核心引擎 | 19 | 18 | **13** | 18 | 0 | 95% |
| DATA 数据层 | 8 | 8 | 7 | 8 | 1 (Model.xml) | 100% |
| EXT 扩展调度 | 4 | 4 | 4 | 4 | 0 | 100% |
| SRV 调度中心 | 6 | 6 | 0 | 6 | 0 | 100% |
| WEB 管理后台 | 17 | 17 | 0 | 10 | 7 (视图UI) | 59% |
| AGT 代理 | 1 | 1 | 0 | 1 | 0 | 100% |
| TST 测试 | 19 | 19 | 19 | 19 | 0 | 100% |
| **合计** | **74** | **73** | **43** | **72** | **8** | **91%** |
---
## SYS — 核心调度引擎 (AntJob)
| 编码 | 功能名 | 实现 | 测试 | 注释 | 代码位置 |
|------|--------|:----:|:----:|:----:|------|
| SYS-1 | 调度器 Scheduler | ✅ | ✅ | ✅ | `Scheduler.cs:13` |
| SYS-2 | 处理器基类 Handler | ✅ | ✅ | ✅ | `Handler.cs:26` |
| SYS-3 | 任务上下文 JobContext | ✅ | ✅ | ✅ | `JobContext.cs:10` |
| SYS-4 | 调度模式 JobModes | ✅ | ✅ | ✅ | `Data/JobModes.cs:8` |
| SYS-5 | 任务状态 JobStatus | ✅ | ✅ | ✅ | `Data/JobStatus.cs:4` |
| SYS-6 | 作业与任务模型 | ✅ | ✅ | ✅ | `Data/IJob.cs` + `Data/JobModel.cs` + `Data/ITask.cs` + `Data/TaskModel.cs` |
| SYS-7 | 作业提供者接口 | ✅ | ✅ | ✅ | `Providers/IJobProvider.cs:11` |
| SYS-8 | 网络提供者 NetworkJobProvider | ✅ | ❌ | ✅ | `Providers/NetworkJobProvider.cs:9` |
| SYS-9 | 文件提供者 FileJobProvider | ✅ | ✅ | ✅ | `Providers/FileJobProvider.cs:13` |
| SYS-10 | Http 提供者 HttpJobProvider | ✅ | ❌ | ✅ | `Providers/HttpJobProvider.cs:12` 🔍审计: 已重构为异步接口+补SetJob,0错误0警告通过全框架编译 |
| SYS-11 | 蚂蚁客户端 AntClient | ✅ | ❌ | ✅ | `Providers/AntClient.cs:14` |
| SYS-12 | 客户端配置 AntSetting | ✅ | ✅ | ✅ | `AntSetting.cs:10` |
| SYS-13 | DI 集成 AntJobExtensions | ✅ | ✅ | ✅ | `AntJobExtensions.cs:9` |
| SYS-14 | 后台服务 AntJobWorker | ✅ | ❌ | ✅ | `AntJobWorker.cs:9` 🔍审计: 已补充类和方法XML注释 |
| SYS-15 | 模板助手 TemplateHelper | ✅ | ✅ | ✅ | `Data/TemplateHelper.cs:6` |
| SYS-16 | 时间表达式 TimeExpression | ✅ | ✅ | ✅ | `Data/TimeExpression.cs:7` |
| SYS-17 | 消息处理器 MessageHandler | ✅ | ✅ | ✅ | `Handlers/MessageHandler.cs:10` |
| SYS-18 | C# 脚本处理器 CSharpHandler | 🟡 | ❌ | ✅ | `Handlers/CSharpHandler.cs:10` 🔍审计: 已补充完整XML注释+NotImplementedException明确暂缓状态 |
| SYS-19 | 消息选项 MessageOption | ✅ | ✅ | ✅ | `Providers/MessageOption.cs:4` |
## DATA — 数据持久化 (AntJob.Data)
| 编码 | 功能名 | 实现 | 测试 | 注释 | 代码位置 |
|------|--------|:----:|:----:|:----:|------|
| DATA-1 | 应用系统实体 App | ✅ | ✅ | ✅ | `Entity/应用系统.cs` + `.Biz.cs` |
| DATA-2 | 应用在线实体 AppOnline | ✅ | ✅ | ✅ | `Entity/应用在线.cs` + `.Biz.cs` |
| DATA-3 | 作业实体 Job | ✅ | ✅ | ✅ | `Entity/作业.cs` + `.Biz.cs` |
| DATA-4 | 作业任务实体 JobTask | ✅ | ✅ | ✅ | `Entity/作业任务.cs` + `.Biz.cs` |
| DATA-5 | 作业错误实体 JobError | ✅ | ✅ | ✅ | `Entity/作业错误.cs` + `.Biz.cs` |
| DATA-6 | 应用历史实体 AppHistory | ✅ | ✅ | ✅ | `Entity/应用历史.cs` + `.Biz.cs` 🔍审计: 注释完整(类+FindById+FindAllByAppIDAndAction均有`<summary>`/`<param>`/`<returns>`),修正为✅ |
| DATA-7 | 应用消息实体 AppMessage | ✅ | ✅ | ✅ | `Entity/应用消息.cs` + `.Biz.cs` 🔍审计: FindCountByAppID注释已修正为同行闭合+完整param/returns |
| DATA-8 | Model.xml 数据模型 | ✅ | — | ✅ | `Model.xml`(6 张表,含 DataScale/Map/Index) |
## EXT — 扩展调度 (AntJob.Extensions)
| 编码 | 功能名 | 实现 | 测试 | 注释 | 代码位置 |
|------|--------|:----:|:----:|:----:|------|
| EXT-1 | 数据处理作业 DataHandler | ✅ | ✅ | ✅ | `DataHandler.cs:13`(泛型版) + `DataHandler.cs:75`(基类) |
| EXT-2 | SQL 语句处理器 SqlHandler | ✅ | ✅ | ✅ | `SqlHandler.cs:10` |
| EXT-3 | SQL 消息处理器 SqlMessage | ✅ | ✅ | ✅ | `SqlMessage.cs:10` |
| EXT-4 | SQL 片段解析 SqlSection | ✅ | ✅ | ✅ | `SqlSection.cs:21` |
## SRV — 调度中心服务 (AntJob.Server)
| 编码 | 功能名 | 实现 | 测试 | 注释 | 代码位置 |
|------|--------|:----:|:----:|:----:|------|
| SRV-1 | 蚂蚁 RPC 服务 AntService | ✅ | ❌ | ✅ | `AntService.cs:19` |
| SRV-2 | 应用认证服务 AppService | ✅ | ❌ | ✅ | `Services/AppService.cs:12` |
| SRV-3 | 作业调度服务 JobService | ✅ | ❌ | ✅ | `Services/JobService.cs:11` |
| SRV-4 | Worker 后台服务 | ✅ | ❌ | ✅ | `Worker.cs:13` 🔍审计: 已补充类、构造、StartAsync/StopAsync的XML注释 |
| SRV-5 | 服务端配置 AntJobSetting | ✅ | ❌ | ✅ | `Setting.cs:8` |
| SRV-6 | Program 入口 | ✅ | ❌ | ✅ | `Program.cs:1` |
## WEB — 可视化管理后台 (AntJob.Web)
| 编码 | 功能名 | 实现 | 测试 | 注释 | 代码位置 |
|------|--------|:----:|:----:|:----:|------|
| WEB-1a | AntJob HTTP API | ✅ | ❌ | ✅ | `Controllers/AntJobController.cs:25` 🔍审计: 私有字段按规范无需注释(仅public/protected需注释),修正为✅ |
| WEB-2a | 蚂蚁区域注册 | ✅ | ❌ | ✅ | `Areas/Ant/AntAreaRegistration.cs:10` |
| WEB-3a | 应用系统管理接口 | ✅ | ❌ | ✅ | `Areas/Ant/Controllers/AppController.cs:14`(EntityController CRUD) 🔍审计: 类+Search方法有完整XML注释,修正为✅ |
| WEB-3b | 应用系统管理页面 | ✅ | ❌ | — | Cube Views / `AppController` 静态构造器字段定制 🔍审计: UI视图无XML注释需要,标记为不适用 |
| WEB-4a | 作业管理接口 | ✅ | ❌ | ✅ | `Areas/Ant/Controllers/JobController.cs:14`(EntityController CRUD) 🔍审计: 注释完整,含类+Search+ResetTime+SetOffset+ClearError+Clone |
| WEB-4b | 作业管理页面 | ✅ | ❌ | — | Cube Views / `JobController` 静态构造器字段定制 🔍审计: UI视图无XML注释需要,标记为不适用 |
| WEB-5a | 任务管理接口 | ✅ | ❌ | ✅ | `Areas/Ant/Controllers/JobTaskController.cs:17`(EntityController CRUD) |
| WEB-5b | 任务管理页面 | ✅ | ❌ | — | Cube Views / `JobTaskController` 静态构造器字段定制 🔍审计: UI视图无XML注释需要,标记为不适用 |
| WEB-6a | 在线实例接口 | ✅ | ❌ | ✅ | `Areas/Ant/Controllers/AppOnlineController.cs` 🔍审计: 类+Search有完整XML注释,修正为✅ |
| WEB-6b | 在线实例页面 | ✅ | ❌ | — | Cube Views 🔍审计: UI视图无XML注释需要,标记为不适用 |
| WEB-7a | 操作历史接口 | ✅ | ❌ | ✅ | `Areas/Ant/Controllers/AppHistoryController.cs` 🔍审计: 类+Search有完整XML注释,修正为✅ |
| WEB-7b | 操作历史页面 | ✅ | ❌ | — | Cube Views 🔍审计: UI视图无XML注释需要,标记为不适用 |
| WEB-8a | 消息管理接口 | ✅ | ❌ | ✅ | `Areas/Ant/Controllers/AppMessageController.cs` 🔍审计: 类+Search+ClearDelay+SetDelay有完整XML注释,修正为✅ |
| WEB-8b | 消息管理页面 | ✅ | ❌ | — | Cube Views 🔍审计: UI视图无XML注释需要,标记为不适用 |
| WEB-9a | 错误管理接口 | ✅ | ❌ | ✅ | `Areas/Ant/Controllers/JobErrorController.cs` 🔍审计: 类+Search有完整XML注释,修正为✅ |
| WEB-9b | 错误管理页面 | ✅ | ❌ | — | Cube Views 🔍审计: UI视图无XML注释需要,标记为不适用 |
| WEB-10 | Startup 启动配置 | ✅ | ❌ | ✅ | `Startup.cs:7` |
## AGT — 蚂蚁代理 (AntJob.Agent)
| 编码 | 功能名 | 实现 | 测试 | 注释 | 代码位置 |
|------|--------|:----:|:----:|:----:|------|
| AGT-1 | Agent 入口程序 | ✅ | ❌ | ✅ | `Program.cs` |
## TST — 自动化测试 (AntTest)
| 编码 | 功能名 | 实现 | 测试 | 注释 | 代码位置 |
|------|--------|:----:|:----:|:----:|------|
| TST-1 | 作业逻辑测试 | ✅ | ✅ | ✅ | `JobTests.cs:6`(CheckQuiet 免打扰时段) |
| TST-2 | 时间表达式测试 | ✅ | ✅ | ✅ | `TimeExpressionTests.cs:6`(ParseItem/Execute) |
| TST-3 | 模板助手测试 | ✅ | ✅ | ✅ | `TemplateHelperTests.cs:6`(时间/消息替换) |
| TST-4 | SQL 处理器测试 | ✅ | ✅ | ✅ | `SqlHandlerTests.cs:8`(多语句执行) |
| TST-5 | SQL 片段解析测试 | ✅ | ✅ | ✅ | `SqlSectionTests.cs:5`(Query/Insert/Delete) |
| TST-6 | 调度器测试 | ✅ | ✅ | ✅ | `SchedulerTests.cs`(构造/AddHandler/Setting/Provider) |
| TST-7 | 处理器生命周期测试 | ✅ | ✅ | ✅ | `HandlerTests.cs`(Init/Start/Stop/Process/Execute) |
| TST-8 | 作业模式枚举测试 | ✅ | ✅ | ✅ | `JobModesTests.cs`(枚举值+Description) |
| TST-9 | 作业状态枚举测试 | ✅ | ✅ | ✅ | `JobStatusTests.cs`(枚举值+连续性) |
| TST-10 | 作业模型测试 | ✅ | ✅ | ✅ | `JobModelTests.cs`(属性+克隆) |
| TST-11 | 任务模型测试 | ✅ | ✅ | ✅ | `TaskModelTests.cs`(属性) |
| TST-12 | 任务上下文测试 | ✅ | ✅ | ✅ | `JobContextTests.cs`(属性/Speed/索引器) |
| TST-14 | 作业提供者测试 | ✅ | ✅ | ✅ | `JobProviderTests.cs`(JobProvider抽象层/FileJobProvider边界) |
| TST-15 | 消息处理器测试 | ✅ | ✅ | ✅ | `MessageHandlerTests.cs`(构造/Topic/解码/空值) |
| TST-16 | 配置+DI扩展测试 | ✅ | ✅ | ✅ | `AntSettingTests.cs`(AntSetting/PeerModel/AddAntJob) |
| TST-17 | SQL消息处理器测试 | ✅ | ✅ | ✅ | `SqlMessageTests.cs`(ProduceMessage/多Topic/去重) |
| TST-18 | 数据层集成测试 | ✅ | ✅ | ✅ | `DataLayerTests.cs`(SQLite: App/Job/JobTask/AppOnline CRUD+查询) |
| TST-19 | DataHandler集成测试 | ✅ | ✅ | ✅ | `DataLayerTests.cs`(内含: Init/Field/GetMinDataTime/Execute) |
|