refactor: 调度服务端改为控制台架构,借助现有H ost架构和分布式缓存架构
大石头 authored at 2023-06-10 10:59:44
10.83 KiB
AntJob
# 功能清单 — 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) |