You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.8 KiB
4.8 KiB
school_jobs 表文档
表概述
表名: school_jobs
功能: 队列任务管理表,负责管理教务系统中的异步任务队列,支持任务调度、重试机制和任务状态跟踪
字段说明
Field Type Collation Null Key Default Extra Privileges Comment
id int NULL NO PRI NULL auto_increment select,insert,update,references
queue varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references
payload longtext utf8mb4_general_ci NO NULL select,insert,update,references
attempts tinyint unsigned NULL NO 0 select,insert,update,references
reserve_time int unsigned NULL YES 0 select,insert,update,references
available_time int unsigned NULL YES 0 select,insert,update,references
create_time int unsigned NULL YES 0 select,insert,update,references
功能用途
主要功能
- 队列任务管理: 管理系统中的异步任务队列
- 任务负载存储: 通过payload字段存储任务的具体数据和参数
- 重试机制: 通过attempts字段跟踪任务的执行次数
- 任务调度: 通过reserve_time和available_time控制任务的执行时机
- 队列分类: 通过queue字段对不同类型的任务进行分类管理
- 任务状态跟踪: 跟踪任务的执行状态和进度
- 延迟执行: 支持任务的延迟执行和定时调度
- 失败重试: 自动重试失败的任务,提高系统可靠性
- 任务监控: 监控任务队列的执行情况和性能
业务场景
- 邮件发送: 异步处理邮件发送任务,避免阻塞主流程
- 数据导出: 处理大量数据的导出任务,如成绩单、报表等
- 文件处理: 处理文件上传、转换、压缩等耗时操作
- 通知推送: 批量发送系统通知、短信、微信消息等
- 数据同步: 与第三方系统进行数据同步和交换
- 定时任务: 执行定时的数据清理、备份、统计等任务
- 图片处理: 处理图片的缩放、裁剪、水印等操作
- 报表生成: 生成复杂的统计报表和分析数据
- 系统维护: 执行系统清理、优化、更新等维护任务
关联关系
主要关联表
- school_sys_user: 系统用户表(任务创建者关联)
- school_campus: 校区表(任务校区关联)
- school_sys_config: 系统配置表(队列配置关联)
- school_addon: 插件表(插件任务关联)
- sys_log: 系统日志表(任务执行日志关联)
- school_sys_attachment: 附件表(文件处理任务关联)
- school_order_table: 订单表(支付任务关联)
- school_member: 会员表(通知任务关联)
关联说明
- 队列分类: queue字段标识任务类型和处理队列
- 任务数据: payload字段存储任务的具体执行参数
- 执行控制: reserve_time和available_time控制任务执行时机
- 重试机制: attempts字段记录任务重试次数
- 时间管理: create_time记录任务创建时间
- 状态跟踪: 通过时间字段判断任务执行状态
- 业务关联: 任务可能关联到各种业务表的数据处理
- 系统集成: 与系统配置和日志系统集成
索引建议
- 主键索引: id(已存在)
- 业务索引:
- queue(队列类型查询)
- attempts(重试次数查询)
- 时间索引:
- reserve_time(预约时间查询)
- available_time(可用时间查询)
- create_time(创建时间查询)
- 复合索引:
- (queue, available_time)(队列可用任务查询)
- (queue, attempts)(队列重试任务查询)
- (available_time, attempts)(可执行任务查询)
- 状态索引:
- (reserve_time, available_time)(任务状态查询)
注意事项
- 队列名称: queue字段应使用标准的队列命名规范
- 负载格式: payload字段应存储有效的JSON或序列化数据
- 重试限制: attempts字段应设置合理的重试上限,避免无限重试
- 时间精度: 时间字段使用Unix时间戳,注意时区处理
- 任务超时: 长时间未处理的任务需要超时机制
- 并发控制: 同一任务避免重复执行,需要锁机制
- 内存管理: payload字段可能存储大量数据,注意内存使用
- 错误处理: 任务执行失败需要记录详细的错误信息
- 队列监控: 需要监控队列长度和处理速度
- 数据清理: 已完成的任务需要定期清理,避免表过大
- 优先级管理: 重要任务需要优先级机制
- 死锁检测: 避免任务间的死锁情况
- 资源限制: 控制并发任务数量,避免系统资源耗尽
- 备份恢复: 重要任务数据需要备份和恢复机制
- 性能优化: 大量任务处理时需要考虑性能优化
- 安全控制: 任务执行需要适当的权限和安全控制