WARNING
本文档已随「自动任务」升级(任务 + 条目模型)更新,部分内容尚未经过人工复核。如果无法解决问题或需要协助部署,可邮箱联系:kuohu@getastra.cn
自动任务
管理系统中的定时自动化任务。任务支持六种类型(调休、作息表调整、课程表调整、调课、全部调整、客户端配置)与五种生效条件(单日、日期范围、每周轮换、时刻事件、cron)。任务列表按状态排序:生效中 > 待生效 > 已过期,生效中内部按优先级降序排列。
列表页面
表格展示所有自动任务,包含以下列:
右上角提供「新增」「清理已过期」「刷新」三个按钮:
- 清理已过期:一键删除所有「已过期」且未停用的自动任务,需要二次密码确认,完成后提示删除条数。被停用的任务会保留;后端也可通过
autorun.auto_clean自动清理(见服务端配置)。

新增/编辑页面
基本字段
- 任务名称:可选,便于在列表中识别;留空时按任务内容生成 ID,不影响功能。
- 类型:下拉选择六种任务类型之一。

- 生效域:多选下拉,选项按学校/年级/班级三级列出。选中上级后其下级选项自动禁用(由上级范围覆盖)。
- 优先级:数字输入,决定当多个任务同时生效时的执行顺序。
- 启用:关闭后任务不参与课表解析(列表显示「已停用」)。
条目
每个任务包含一条或多条条目,条目之间共享类型、生效域与优先级。条目卡片头部显示该条目的条件与内容摘要,并提供启用开关、复制、删除操作;页面底部可「添加条目」。
生效条件
NOTE
「时刻事件」只对客户端配置类型开放:这类条件的时刻由客户端按当天作息表本地判定。
内容(按类型)
- 调休(COMPENSATION):填写「借用哪一天的课(useDate)」。页面上方提供「导入全年调休」入口,以及在条目内按节假日/工作日互相反推的按钮。
- 作息表调整(TIMETABLE):选择该条件生效期间使用的作息表。选项来自生效域内各年级作息表的交集,因此需要把生效域选到具体的年级或班级。
- 课程表调整(SCHEDULE):按节次填写科目,或点击「按当前课表自动填充」(需要条目条件为「单日」)。系统会检测各班节次数是否一致,不一致时弹出冲突提示。
- 调课(LESSON_SWAP):填写要互换的两端「日期 + 节次」。等效于两条课程表调整,但精确到某一天具体的课,不必把多个调课堆在同一条任务下维护;生效条件由两端日期自动生成。
- 全部调整(ALL):同时选择作息表与课程表。
- 客户端配置(CLIENT_CONFIG):对「窗口置顶 / 上课隐藏 / 始终缩小 / 课上计时」逐项选择 不变 / 开启 / 关闭。
编辑视图
编辑器提供三种视图,适用范围各不相同:
- 条目列表:全部任务类型。逐条编辑条件与内容,适合混合条件(例如一条单日条目 + 一条范围条目)。
- 轮换表:除调休与调课之外的类型。把「每 N 周的第 X 周」聚合成一张 N 行的表,每行填写该周的配置;保存时会展开为 N 条「每周轮换」条目。
- 已存在的任务若全部由同周期的每周轮换条目组成,打开轮换表视图时会自动还原成表格,可随时切回条目列表。
- 「课程表调整 / 全部调整」类型在轮换表中需要先选择「课程模板日期」,自动填充会按该日期所在星期取模板。
- 逐节轮换:仅「课程表调整」类型。按「星期 + 节次」组织,每一节单独设置自己的轮换周期,不必为了照顾周期最长的节把整周凑成最小公倍数。
逐节轮换视图
页面按天分组,每天包含:
- 课表横条:按当前预览周渲染当天的课程单字,格子上方是节次序号,并按该天作息表的分隔线配置插入分隔线,用来确认「第 N 节」究竟是哪一节。
- 逐节编辑行:一节一行,逐周选择科目;「+周」为该节增加一个轮换周,「删除」移除某一周。
保存时按天计算 N = 各节轮换周数的最小公倍数,展开为 N 条「每周轮换」条目(限定星期为该天):服务端命中某一条后整张覆盖当天的课表。因此:
- 第一节两周一换、第十节三周一换时,这一天会展开为 6 条条目,但界面上只需分别配置 2 周和 3 周。
- 某天的轮换周期超过 52 周时该天会被拒绝保存并提示,避免展开出上百条条目。
- 允许留空科目:空科目与课表配置里的空槽行为一致。
从班级课表导入
「从班级课表导入」把课表配置中已经写好的多周轮换直接转成逐节轮换:
- 把生效域限定为一个班级——条目是任务级配置,多班生效域会把该班课表套用到其它班。
- 点击「从班级课表导入」,读取该班级的课表配置,只导入含多周轮换的天,其余天保持原样。
- 校验后保存,展开为若干条「每周轮换」条目。
导入只是把旧配置翻译成自动任务,不会改动原课表:自动任务在课表解析时覆盖当天的课程,任务停用或过期后会回落到课表配置里的原值。
保存
- 保存需要二次密码验证(与其它写操作一致)。
- 编辑已有任务时按主键原地更新,唯一 ID 与创建时间保持不变。
- 保存后服务端会按新旧生效域的并集向在线客户端广播配置刷新。
