# school_sys_schedule_log 表文档 ## 表概述 **表名**: school_sys_schedule_log **功能**: 系统计划任务执行日志表,用于记录定时任务的执行历史、状态和结果 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 执行记录id schedule_id int NULL NO 0 select,insert,update,references 任务id addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属插件 key varchar(255) utf8mb4_general_ci NO select,insert,update,references 计划任务模板key name varchar(50) utf8mb4_general_ci NO select,insert,update,references 计划任务名称 execute_time int NULL NO NULL select,insert,update,references 执行时间 execute_result text utf8mb4_general_ci YES NULL select,insert,update,references 日志信息 status varchar(255) utf8mb4_general_ci NO select,insert,update,references 执行状态 class varchar(255) utf8mb4_general_ci NO select,insert,update,references job varchar(255) utf8mb4_general_ci NO select,insert,update,references ``` ## 功能用途 ### 主要功能 - **任务执行记录**: 记录系统中所有计划任务的执行历史和详细信息 - **执行状态跟踪**: 实时跟踪任务的执行状态(成功、失败、执行中等) - **执行结果存储**: 存储任务执行的详细结果和日志信息 - **任务分类管理**: 通过addon字段区分不同插件的计划任务 - **任务模板关联**: 通过key字段关联具体的任务模板配置 - **执行时间记录**: 精确记录任务的执行开始时间 - **错误日志收集**: 收集和存储任务执行过程中的错误信息 - **性能监控**: 监控任务执行的性能和耗时情况 - **任务审计**: 为系统审计提供完整的任务执行记录 ### 业务场景 - **数据同步任务**: 记录学员信息、课程数据等定期同步任务的执行情况 - **报表生成**: 记录定时生成各类统计报表的任务执行日志 - **数据清理**: 记录定期清理过期数据、日志文件等清理任务 - **消息推送**: 记录定时发送通知、提醒等消息推送任务 - **财务结算**: 记录定期财务结算、对账等财务相关任务 - **系统备份**: 记录数据库备份、文件备份等系统维护任务 - **缓存更新**: 记录定期更新缓存数据的任务执行情况 - **监控检查**: 记录系统健康检查、性能监控等监控任务 - **业务提醒**: 记录课程提醒、缴费提醒等业务相关的定时任务 - **数据统计**: 记录定期统计分析数据的任务执行记录 ## 关联关系 ### 主要关联表 - **school_sys_schedule**: 计划任务配置表,通过schedule_id关联任务配置 - **school_sys_addon**: 插件表,通过addon字段关联任务所属插件 - **school_sys_user**: 系统用户表,关联任务的创建和管理用户 - **school_sys_config**: 系统配置表,关联任务执行的配置参数 - **school_sys_log**: 系统日志表,可能与任务日志形成完整的日志体系 - **school_member**: 会员表,某些任务可能涉及会员数据处理 - **school_course**: 课程表,课程相关的定时任务 - **school_pay**: 支付表,财务相关的定时任务 ### 关联说明 - `schedule_id` 关联 `school_sys_schedule.id`,标识具体的计划任务配置 - `addon` 关联 `school_sys_addon.key`,标识任务所属的插件模块 - `key` 字段标识任务模板的唯一标识符 - `class` 和 `job` 字段标识任务的具体执行类和方法 - **配置关联**: 与任务配置表关联,获取任务的执行参数 - **插件关联**: 与插件系统关联,支持插件化的任务管理 - **日志关联**: 与系统日志体系关联,形成完整的操作记录 - **监控关联**: 与系统监控关联,实现任务执行的实时监控 ## 索引建议 ```sql -- 主键索引(自动创建) PRIMARY KEY (id) -- 任务ID索引(用于查询特定任务的执行记录) INDEX idx_schedule_id (schedule_id) -- 插件索引(用于按插件查询任务记录) INDEX idx_addon (addon) -- 任务key索引(用于按任务模板查询) INDEX idx_key (key) -- 执行状态索引(用于按状态查询) INDEX idx_status (status) -- 执行时间索引(用于按时间查询) INDEX idx_execute_time (execute_time) -- 复合索引(用于任务执行统计) INDEX idx_schedule_status_time (schedule_id, status, execute_time) -- 复合索引(用于插件任务统计) INDEX idx_addon_status_time (addon, status, execute_time) -- 复合索引(用于任务模板统计) INDEX idx_key_status_time (key, status, execute_time) ``` ## 注意事项 - **日志大小控制**: execute_result字段可能存储大量日志信息,需要控制日志大小 - **数据清理策略**: 定期清理过期的任务执行日志,避免数据量过大 - **执行状态准确性**: 确保任务执行状态的准确记录和及时更新 - **错误信息完整性**: 任务执行失败时应记录完整的错误信息和堆栈 - **时间精度**: 执行时间应保证足够精度,支持性能分析 - **并发安全**: 多个任务同时执行时需要保证日志记录的并发安全 - **存储性能**: 大量任务执行时需要考虑日志写入的性能影响 - **查询优化**: 针对常用的查询场景优化索引和查询语句 - **监控告警**: 建立任务执行异常的监控和告警机制 - **日志轮转**: 实施合理的日志轮转和归档策略 - **权限控制**: 控制任务日志的查看和管理权限 - **备份策略**: 重要任务的执行日志需要定期备份 - **性能统计**: 定期分析任务执行性能,优化任务配置 - **异常处理**: 建立任务执行异常的处理和恢复机制 - **审计合规**: 确保任务执行日志满足审计和合规要求