Commit Graph

  • 5b47a23a24 Merge pull request '首页问候语-智能化进程1' (#2) from codex/smart into master biss 2026-08-10 12:02:03 +08:00
  • f9e5103cf1 v2.4.0-rc1 biss 2026-08-10 10:37:58 +08:00
  • 20faea492b 成绩、学业分析 biss 2026-08-10 10:36:37 +08:00
  • 104d63ace3 排课前检查 biss 2026-08-10 10:33:31 +08:00
  • bb9544f8ec 管理端“运行预警” biss 2026-08-10 10:29:29 +08:00
  • 9ffc5bf67c 教师教学驾驶舱 biss 2026-08-10 10:27:42 +08:00
  • 545071a7dd 学业风险雷达已接入首页,复用现有正式预警规则、检测、通知和确认流程: 学生首页:显示当前生效预警的自然语言摘要与最多 3 条重点事项,可直达处理页。 辅导员首页:显示所管班级的生效预警学生与详情,可直达完整预警列表。 风险接口加载失败会明确提示,不会误报“暂无风险”。 混合“学生 + 辅导员”角色会优先进入辅导员工作台。 biss 2026-08-10 10:24:54 +08:00
  • 360af12d02 增加自然语言状态摘要 biss 2026-08-10 10:19:19 +08:00
  • d4dd40bb72 Merge branch 'master' into codex/smart biss 2026-08-10 10:10:42 +08:00
  • 75b5681ac9 修正测试 biss 2026-08-10 10:09:27 +08:00
  • 40064cedda 首页问候 biss 2026-08-10 10:03:35 +08:00
  • 64b67bb3ce v2.3.2 v2.3.2 biss 2026-08-10 09:49:32 +08:00
  • 3bcb976aa4 新建时可选“自动生成顺序号”:例如 数据库实验 01、02… 或选“逐行粘贴名称”:每行一个名称,按实际生成顺序对应项目。 草稿项目支持勾选后“批量改名”,可直接粘贴多行名称。 服务端会校验名称数量、长度和草稿状态,避免错位或修改已发布项目。 biss 2026-08-10 09:45:02 +08:00
  • 4be61ab921 修复 biss 2026-08-10 09:35:57 +08:00
  • c25f16ec20 实验成绩计算 biss 2026-08-09 22:40:21 +08:00
  • d4abdd3db4 权限修复 biss 2026-08-09 22:10:44 +08:00
  • c26e082a77 修复实验成绩管理: 管理列表改为服务端分页,支持 10/20/50 条切换。 增加学期、成绩状态、开课学院以及项目/课程/教学班/教师关键词筛选。 数据范围分级:校级管理员可查看全校,院级管理员仅限本学院,教师仅限本人任课项目。 修复任课教师提交审核时报“无权限”:工作流查询现在会加载任课教师关系。 增加权限、学院隔离、分页和筛选回归测试。 biss 2026-08-09 21:48:19 +08:00
  • cd073885b5 “教学班成绩分析”页面新增“定时刷新设置”,支持启停、刷新间隔、单次处理上限、查看上次/下次扫描时间。 配置保存在独立数据库表 CourseGradeStatisticsRefreshSettings,不是修改 appsettings.json。 后台每 10 秒读取配置,仅到期扫描;成绩录入、导入、审批时不再立即创建统计任务。 扫描发现过期数据后,仍通过持久任务、Outbox 和 RabbitMQ 执行;Redis统计缓存由处理任务统一刷新。 biss 2026-08-09 20:51:57 +08:00
  • e8261714da 实验批量发布现在会创建持久化后台任务,不再在 HTTP 请求里逐项校验和通知。 biss 2026-08-09 20:08:10 +08:00
  • d05b6df9f5 修改实验页面设计 biss 2026-08-09 19:53:36 +08:00
  • 97aa23bc64 同学期、同课程、同教学班的实验项目合并展示,组内连续排列。 管理列表改为数据库筛选、按教学任务服务端分页(10–100 条/页)。 增加开课学院、课程名称/编码、教学班、任课教师、教学任务号筛选。 增加当前页草稿项目的批量选中、批量发布、批量删除;后端会再次校验权限、状态和发布条件。 确认框改为固定居中白色底板与阴影,不再出现只有文字按钮、没有底色的情况。 biss 2026-08-09 19:44:45 +08:00
  • 25a1480739 修改培养方案 biss 2026-08-09 17:59:10 +08:00
  • ae24371d7f 培养方案“学期视图”。 biss 2026-08-09 16:47:19 +08:00
  • f246378d5b 修改选课页面课程表 biss 2026-08-09 16:43:35 +08:00
  • 26a39322fd 已修复: 实验课场地区块改为独立卡片布局,校区、教学楼和场地选择不再被嵌套表单挤压。 批量设置新增独立的“批量指定实验课场地”入口,包含场地性质、实验校区、教学楼和具体场地,并会联动筛选。 后端会保存并校验批量实验场地范围,避免跨校区/教学楼的无效设置。 biss 2026-08-09 16:26:41 +08:00
  • 400761beaa 2.3.2-beta.4 biss 2026-08-09 16:06:34 +08:00
  • 8ef7fc9f9a 发布课表投影改为数据库端删除旧数据、每 2,000 条分批写入并及时释放 EF 跟踪对象,避免大规模发布时内存持续增长。 为“空闲教室/预约占用”新增 学期 + 周次 + 星期 + 节次 + 场地 查询索引;新发布课表的该查询已优先走课次明细投影。 biss 2026-08-09 16:05:57 +08:00
  • e39ab4579f 空闲教室与场地预约占用检查,现在对新发布课表优先查询 PublishedScheduleOccurrences。 查询直接按“学期 + 周次 + 星期 + 节次”命中投影索引,不再扫描周期规则并在应用层判断单双周。 历史已发布课表若尚未生成投影,自动回退到原规则表,兼容现有数据。 调停课审批后会重建受影响教学任务的已发布投影,因此占用结果同步更新。 biss 2026-08-09 16:04:17 +08:00
  • e36a02ea59 发布课表时,在同一事务内生成实际周次课次明细。 已审批的调课、停课、补课、代课后,会重建受影响教学任务所在已发布课表的明细投影。 biss 2026-08-09 16:02:27 +08:00
  • 26a918a52a 新增 PublishedScheduleOccurrences:发布时将周期规则按实际周次展开为只读课次明细。 明细保留课表版本、学期、来源排课条目、教学任务、场地、周次、星期和节次,并建立面向教学任务/周次、课表/场地/周次的索引。 明细在“发布课表”的同一事务内生成;发布失败不会留下半成品。 biss 2026-08-09 16:00:09 +08:00
  • fb4e5ac4d5 实验排课再次修正 biss 2026-08-09 15:57:05 +08:00
  • 1e60e46c7b 修复实验排课 biss 2026-08-09 15:21:58 +08:00
  • 8880c4127e Merge branch 'master' into codex/shiyan codex/shiyan biss 2026-08-09 14:53:42 +08:00
  • bb2b43b0d9 Merge branch 'codex/shiyan' into master biss 2026-08-09 14:51:24 +08:00
  • 3c9863580b 更新nuget&&添加swagger biss 2026-08-09 14:47:08 +08:00
  • fa528baf33 实验排课修复 biss 2026-08-09 14:20:19 +08:00
  • c692002676 实验排课 biss 2026-08-09 12:30:33 +08:00
  • 1229f3163d 成绩分析报告 biss 2026-08-09 11:45:06 +08:00
  • ca8232ad5e 教师成绩报告 biss 2026-08-09 11:09:43 +08:00
  • 924574256a 成绩统计图 biss 2026-08-09 10:13:12 +08:00
  • 5f30dd6766 修复其他考试提交 biss 2026-08-08 21:27:52 +08:00
  • 87e0b208ef v2.3.0 v2.3.0 biss 2026-08-08 17:13:14 +08:00
  • 1e9ff9f0e0 去除文案 biss 2026-08-08 17:13:01 +08:00
  • f7aac00870 修复其他考试无成绩填写栏 biss 2026-08-08 17:03:24 +08:00
  • edd7655039 v2.3.0-rc3 biss 2026-08-08 16:43:25 +08:00
  • c9163e1d2f 其他类型考试 biss 2026-08-08 16:42:57 +08:00
  • a1205c8ef7 去除小箭头 biss 2026-08-08 15:44:36 +08:00
  • cc04270c2a 已修复实验批量排课报错。 biss 2026-08-08 15:37:34 +08:00
  • a215f8fc29 实验修复 biss 2026-08-05 17:24:47 +08:00
  • 10b51eb08a 2.3.0-rc2 biss 2026-08-04 10:48:08 +08:00
  • 6735a6d3fc sso优化 biss 2026-08-03 20:30:32 +08:00
  • 5ec62a03ca 滑动续期与自动刷新: Web:访问令牌 10 分钟;活跃时自动轮换刷新令牌;连续无操作 30 分钟后清除登录并跳转登录页。 App:会话窗口 3 天;打开 App、恢复前台或请求接口时自动刷新并重新顺延 3 天。 普通登录和 SSO 使用同一策略。 刷新令牌只以 SHA-256 摘要入库,每次刷新都会轮换,旧令牌无法再次使用;退出登录会吊销刷新令牌。 网络临时故障不会误清登录状态,多标签页同时刷新也做了竞争处理。 biss 2026-08-03 19:20:39 +08:00
  • 6bee29a351 添加sso biss 2026-08-03 15:57:40 +08:00
  • fb812268d7 修正版本号 v2.2.0 biss 2026-08-02 18:05:45 +08:00
  • 019b3fc827 v2.2.0 biss 2026-08-02 17:29:33 +08:00
  • f7c73247d6 版本号 biss 2026-08-02 17:28:44 +08:00
  • 8cb9b4f57b 班级查询按“考试场次”合并,显示为“分散至 N 个考场”,不再生成大量重复卡片。[后端实现 (line 416)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Timetables/TimetableDataService.cs:416) 学生登录后只显示本人座位对应的考场,同时修复混排考场可能带出其他课程的问题。[筛选逻辑 (line 561)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Timetables/TimetableDataService.cs:561) 多考场卡片提示学生登录查看本人考场及监考教师。[前端展示 (line 1122)](E:/jiaowu/web/src/views/TimetableView.vue:1122) 教室课表、监考教师课表仍按具体考场显示,不受合并影响。 已增加班级合并和学生精准考场回归测试。[测试 (line 183)](E:/jiaowu/tests/Jiaowu.Api.Tests/ExamArrangementServiceTests.cs:183) biss 2026-08-02 17:09:26 +08:00
  • f0f59419d5 实验课现在直接进入普通排课流程,不再要求先到实验排课模块逐个安排。 普通“添加排课”新增“理论课 / 实验课”类型。 自动排课会分别补足理论学时和实验学时。 实验课只能安排到实验室、实训室、机房、语音室等场地。 发布课表时分别校验理论、实验学时;任一未排足都不能发布。 普通课表及 Excel 导出会标注“实验课”。 历史排课保持不变,迁移后默认识别为理论课;后续新建或修订版本时再补充实验课。 biss 2026-08-02 16:54:41 +08:00
  • 9d525826ce 支持为同一学期、同一课程的多个教学任务批量创建相同实验项目。 新增批量排课表,可为多个实验项目分别设置日期、节次、实验室和容量。 批量排课采用原子事务:任一项目发生教室、教师、班级或课表冲突,整批不写入。 已发布项目批量新增场次时,继续按原逻辑通知学生。 后端继续执行管理范围、教学任务状态、开放日期和容量校验。 页面在 390px 手机宽度下无横向溢出。 biss 2026-08-01 16:08:03 +08:00
  • 551f1143b7 超级管理员现在可在“组织与权限 → 运维与审计 → 系统性能”中直接查看: 请求量、5xx 比例、HTTP/数据库 P95 请求速率与延迟趋势 最慢接口排行 慢查询与数据库查询排行 Grafana 原始调用链入口 biss 2026-07-31 09:34:31 +08:00
  • ca7148ab61 接入 OpenTelemetry 1.17.0,覆盖 HTTP、HttpClient、.NET Runtime 和数据库链路。 新增 EF Core 数据库拦截器,记录耗时、失败数、慢查询数、TraceId、查询标签和 SQL 哈希;默认不记录完整 SQL及参数。 未配置 OTLP Collector 时不启动 SDK,避免无收益的性能开销。 为课表的作息、课程、灵活课程、考试、实验等六类查询增加稳定标签。 增加可配置的 500ms 慢查询阈值,以及生产环境变量示例。 README 补充 MySQL 慢查询与 EXPLAIN ANALYZE 操作规范。 biss 2026-07-31 08:24:27 +08:00
  • a369b4fe02 课表查询中最明显的性能优化。 将混合考场查询从“加载整个学期的考场、座位、教师、班级后在内存筛选”,改为在数据库中按班级、教师或教室直接筛选。 改为窄字段投影,避免创建大量 EF 实体和关系对象。 添加查询标签,便于后续在 MySQL 慢查询和链路追踪中定位。 保留现有 HybridCache/可选 Redis 缓存体系,无需新增依赖或数据库迁移。 增加教室、无关教室、监考教师三种回归场景。 biss 2026-07-31 07:56:30 +08:00
  • 7bcfa1a7a4 修复统计图 v2.1.0 biss 2026-07-29 11:50:15 +08:00
  • 66622ca207 智能开屏:显示“姓名+早上/中午/下午/晚上问候”,支持春节、端午、中秋、国庆等节日文案,可点击跳过:[SmartLaunchScreen.vue](E:/jiaowu/web/src/components/SmartLaunchScreen.vue) 长按 App 图标:提供“我的课表、考试安排、课堂签到、消息中心”四个入口。签到会按学生/教师角色自动分流:[shortcuts.xml](E:/jiaowu/web/native/android/app/src/main/res/xml/shortcuts.xml) 桌面小组件:新增“今日课表”和“近期考试”,展示最近同步的数据,点击可进入对应页面:[WidgetRenderer.java](E:/jiaowu/web/native/android/app/src/main/java/edu/mingxu/jiaowu/WidgetRenderer.java) 安全处理:组件只缓存课程和考试摘要,不保存登录令牌;退出账号会清空组件,隔天未刷新时不会继续展示旧的“今日课表”。 原生模板已纳入版本管理,每次 npm run cap:sync 会自动恢复到被忽略的 Android 工程:[configure-capacitor.mjs](E:/jiaowu/web/scripts/configure-capacitor.mjs) biss 2026-07-29 11:11:37 +08:00
  • 93997ea8b1 APP热更新 biss 2026-07-29 10:34:33 +08:00
  • 692b521453 已改成“普通排课与实验学时分离”: 普通课表学时 = 总学时 − 实践学时。 自动排课、手工排课、课表发布都会阻止把实践学时重复排入。 全部为实践学时的课程应设为“非排时课程”,再由实验管理安排。 教学任务和排课页面会显示“常规 / 实践学时”。 已有教学任务即使仍保存旧周学时,排课时也会按拆分后的课程学时计算。 无需数据库迁移。 biss 2026-07-29 09:57:49 +08:00
  • 356c410788 修复实验排课 biss 2026-07-29 09:40:11 +08:00
  • 8f56548b54 已按“实验成绩独立管理”完成修改。 每个实验项目独立建成绩单,支持评分项、参与状态、补做次数、安全违规、报告地址和教师评语。 流程为:录入 → 学院审核 → 教务发布;学生只能查看已发布成绩。 自主预约实验支持同步有效预约名单,已评分记录不会被误删。 课程成绩可将已发布实验成绩汇总为快照导入指定分项;导入后锁定,不能手工篡改。 实验项目成绩不完整时,对应课程分项保持空白,不按 0 分处理。 一级“实验管理”菜单下增加“项目与场次”“实验成绩”;学生端增加“实验安排”“实验成绩”。 已生成 MySQL 正式迁移及 SQLite 开发迁移,尚未操作生产数据库。 界面采用“实验项目 → 独立评分 → 审核发布”工作台设计。 biss 2026-07-28 22:21:18 +08:00
  • 51c3b81e27 实验课表 biss 2026-07-28 21:25:21 +08:00
  • ec979f640d 实验预约 biss 2026-07-28 21:04:18 +08:00
  • 865378dbdf 修复课表 biss 2026-07-28 20:08:12 +08:00
  • 2dae303cf1 update biss 2026-07-28 15:41:28 +08:00
  • a61dacff1a 考试按实际日期、周次和节次融入周/日/总视图,并用橙色“考试”卡片区分。 即使固定课表尚未发布,只要考试已发布,也能正常显示。 考试计划、考场、监考教师和日期都会显示。 Excel 导出同步包含考试安排。 biss 2026-07-28 14:16:24 +08:00
  • 9a75589282 app biss 2026-07-28 13:59:16 +08:00
  • be842cc1d5 修复统计报表 biss 2026-07-28 11:13:23 +08:00
  • 7e14b22296 变更摘要:考试安排注入课表 biss 2026-07-28 08:27:22 +08:00
  • 3ec0f117d3 参照现有的 ExamArrangementJob / SchedulePublishJob 后台任务模式,将发布改为通过 RabbitMQ 队列异步执行,拆分查询消除笛卡尔积。 biss 2026-07-28 08:10:22 +08:00
  • b2de605680 取消笛卡尔积运算 biss 2026-07-27 22:23:08 +08:00
  • 52e4a8a5be 1. 教室容量按 1/2 计算 biss 2026-07-27 22:00:35 +08:00
  • 9e0d4062a4 自动编排接口现在立即返回 202 + jobId,不会再等待 15 秒导致 Axios 超时。 任务参数、状态和结果持久化到 MySQL。 接入现有 outbox;配置 BackgroundJobs__Transport=RabbitMq 时使用 RabbitMQ 队列 exam.arrangement,否则使用 InMemory worker。 服务重启后可恢复未完成任务。 前端显示排队/执行/完成/失败状态,刷新页面可恢复正在执行的任务。 编排期间禁止修改、删除或发布对应计划。 补考原有“一键生成”保留,并与编排任务互斥。 运维后台增加“考试与补考编排”失败任务筛选。 biss 2026-07-27 21:40:14 +08:00
  • 9d9f54a3b0 自动排考 biss 2026-07-27 21:27:00 +08:00
  • c3e8a42641 优化考试排考 biss 2026-07-27 19:31:19 +08:00
  • 64decdab7e 草稿计划支持选择场次后“批量移除已选场次”,一次最多 100 个。 批量操作会完整校验:包含不存在、其他计划或已发布计划的场次时整批拒绝,不会部分删除。[ExamsController.cs (line 384)](E:/jiaowu/src/Jiaowu.Api/Controllers/ExamsController.cs:384) 草稿计划新增“删除草稿”按钮,删除前显示计划名称及场次数量确认。[ExamsView.vue (line 292)](E:/jiaowu/web/src/views/ExamsView.vue:292) 删除草稿计划会级联清理场次和监考关联;已发布计划不能删除。[ExamsController.cs (line 81)](E:/jiaowu/src/Jiaowu.Api/Controllers/ExamsController.cs:81) 删除后会自动切换到其他计划;没有剩余计划时正确显示空状态。 新增草稿、已发布、跨计划混选及级联删除测试。[ExamDeletionControllerTests.cs (line 17)](E:/jiaowu/tests/Jiaowu.Api.Tests/ExamDeletionControllerTests.cs:17) biss 2026-07-27 18:31:52 +08:00
  • fb2acc6751 已修改完成,同时解决了“考生名单都是 0 人”的根因。 考生范围统一为“行政班关联学生 + 已选课学生”,并自动去重;考场分配、人数显示、冲突检测、学生考试安排均使用同一口径。[TeachingTaskRosterQuery.cs (line 40)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Teaching/TeachingTaskRosterQuery.cs:40) 新增考场签名单 Excel 导出接口。[ExamsController.cs (line 568)](E:/jiaowu/src/Jiaowu.Api/Controllers/ExamsController.cs:568) 考试计划页面新增“导出考场签名单”按钮。[ExamsView.vue (line 255)](E:/jiaowu/web/src/views/ExamsView.vue:255) 工作簿包含“考场汇总”以及每个考试场次独立的 A4 签到表,字段包括座位号、学号、姓名、行政班、考生签名和备注。[ExamSignInWorkbookExporter.cs (line 12)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/Exams/ExamSignInWorkbookExporter.cs:12) 未分配考场或监考教师时,也能导出并显示“待分配”。 biss 2026-07-27 18:24:32 +08:00
  • 2e422acd19 修复MySQL问题 biss 2026-07-27 17:27:17 +08:00
  • 514689c7e8 v2.0.0 v2.0.0 biss 2026-07-27 17:12:03 +08:00
  • 2d1e2cb697 “教务总览”改成可实际工作的分级工作台: 校级管理员查看全校数据,学院管理员仅查看本学院数据。 待办按当前审批阶段统计,涵盖授课资格、成绩、调停课、学籍异动、教室借用等。 增加学期进度、教学任务发布、课表覆盖、成绩发布状态。 快捷入口根据管理员角色自动调整。 完善未配置学期、无待办、加载失败等状态。 适配桌面和 390px 移动端,无横向溢出。 biss 2026-07-27 17:11:51 +08:00
  • b8df564b85 修复考试安排 biss 2026-07-27 16:47:55 +08:00
  • 4d8de1e4ae “运维与审计控制台”。 主要能力: SuperAdmin 专用入口:组织与权限 → 运维与审计。 操作日志分页查询,支持时间、账号、路径、方法和状态码筛选。 汇总自动排课、课表发布、补考安排三类失败后台任务。 实时检查数据库、缓存、任务通道及积压状态。 聚合 5xx、失败/重试任务、健康探针和备份时效告警。 SQLite 在线备份;MySQL 调用原生客户端备份。 SHA-256 校验及隔离数据库恢复演练,不覆盖业务库。 MySQL 强制使用独立运维连接,容器增加持久化备份卷与数据库客户端。 biss 2026-07-27 16:37:45 +08:00
  • 14ac49115c 消息修复 biss 2026-07-27 16:06:02 +08:00
  • 06d40a7bf1 发信改为事务内每 300 人分批写入,避免全校群发一次插入过大;数据库异常现在返回明确的 503,不再只显示模糊 500。 校级、学院级管理员支持按学院、身份、行政班、教学班、姓名/学号/工号筛选,也可指定最多 500 名收件人。所有结果均由服务端重新校验权限。 接入 CKEditor 5,支持标题、列表、引用和链接;正文扩展为 MySQL longtext。 富文本在收件箱、详情弹窗和已发送记录中统一经 DOMPurify 净化后展示。 页面改用系统现有的冷白、靛蓝、青绿色令牌,新增“选择收件人 → 编辑内容”工作台和移动端适配。 biss 2026-07-27 12:53:10 +08:00
  • 33ae991e86 预演 biss 2026-07-27 12:20:29 +08:00
  • 727a429abf 排课 v1.3.0 biss 2026-07-27 09:55:22 +08:00
  • 2f5c6af37c 调课 biss 2026-07-27 08:59:02 +08:00
  • 22321abe23 点名、成绩册统一读取“行政班在籍学生 ∪ 已选课学生”,不再错误显示 0 人。 教师选课名单改为展示全部本人教学班及完整学生名单,支持 Excel 导出。 调停课改用教师专用教学班接口,并在服务端限制只能操作本人教学班。 biss 2026-07-27 08:05:42 +08:00
  • bc6ffa2ada 优化 biss 2026-07-26 22:16:58 +08:00
  • dd1b752fa3 学生视图 biss 2026-07-26 21:53:00 +08:00
  • b39a57ebdf 给统计缓存加版本并绑定现有基础数据/课表失效标签,同时让演示数据、人员数据写入主动清理统计缓存;不改统计口径、筛选、导出或页面结构。 biss 2026-07-26 21:32:51 +08:00
  • 034f1eacb8 第二阶段优化已完成,重点是提高后台任务吞吐并降低 Outbox 数据库开销。 RabbitMQ 默认从单一回调通道提升为三类任务独立并行,跨类型并发能力由 1 提升到 3;每类还能独立配置 1–16 个消费者。[RabbitMqBackgroundJobs.cs (line 143)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/RabbitMqBackgroundJobs.cs:143) InMemory 开发模式同步改为按任务类型隔离队列,避免某类长任务堵塞其他任务。 租约恢复检查从“每发布一条执行一次”改为默认每 60 秒维护一次。 启动恢复改为数据库 NOT EXISTS 查询,不再把全部历史 Outbox 加载进内存。[BackgroundJobOutboxPublisher.cs (line 9)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/BackgroundJobOutboxPublisher.cs:9) 完成消息默认保留 14 天,之后按每批 500 条清理,并增加对应组合索引。 /health/messaging 现在返回各状态积压量、过期租约和最老任务等待时间。[BackgroundJobMonitoringService.cs (line 16)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/BackgroundJobMonitoringService.cs:16) 新增 Jiaowu.BackgroundJobs 运行时指标,覆盖发布量、处理量、发布耗时、处理耗时和清理量。[BackgroundJobTelemetry.cs (line 9)](E:/jiaowu/src/Jiaowu.Api/Infrastructure/BackgroundJobs/BackgroundJobTelemetry.cs:9) 配置、Compose 和调优建议已更新。[README.md (line 257)](E:/jiaowu/README.md:257) biss 2026-07-26 21:05:18 +08:00
  • 6300645120 排课计算、课表发布、补考自动编排三类任务统一接入消息系统。 业务任务与 Outbox 消息同一事务落库,避免“数据库成功但消息没发出去”。 RabbitMQ 使用持久化消息、发布确认、手动 ACK、Quorum Queue、死信队列。 增加处理租约、心跳、异常重试、最大重试次数和幂等状态控制。 保留 InMemory 模式,开发环境无需安装 RabbitMQ。 支持多实例竞争消费,后续可以横向扩容。 新增 /health/messaging 消息系统健康检查。 biss 2026-07-26 20:51:42 +08:00