智慧教务系统
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

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	

功能用途

主要功能

  1. 队列任务管理: 管理系统中的异步任务队列
  2. 任务负载存储: 通过payload字段存储任务的具体数据和参数
  3. 重试机制: 通过attempts字段跟踪任务的执行次数
  4. 任务调度: 通过reserve_time和available_time控制任务的执行时机
  5. 队列分类: 通过queue字段对不同类型的任务进行分类管理
  6. 任务状态跟踪: 跟踪任务的执行状态和进度
  7. 延迟执行: 支持任务的延迟执行和定时调度
  8. 失败重试: 自动重试失败的任务,提高系统可靠性
  9. 任务监控: 监控任务队列的执行情况和性能

业务场景

  1. 邮件发送: 异步处理邮件发送任务,避免阻塞主流程
  2. 数据导出: 处理大量数据的导出任务,如成绩单、报表等
  3. 文件处理: 处理文件上传、转换、压缩等耗时操作
  4. 通知推送: 批量发送系统通知、短信、微信消息等
  5. 数据同步: 与第三方系统进行数据同步和交换
  6. 定时任务: 执行定时的数据清理、备份、统计等任务
  7. 图片处理: 处理图片的缩放、裁剪、水印等操作
  8. 报表生成: 生成复杂的统计报表和分析数据
  9. 系统维护: 执行系统清理、优化、更新等维护任务

关联关系

主要关联表

  1. school_sys_user: 系统用户表(任务创建者关联)
  2. school_campus: 校区表(任务校区关联)
  3. school_sys_config: 系统配置表(队列配置关联)
  4. school_addon: 插件表(插件任务关联)
  5. sys_log: 系统日志表(任务执行日志关联)
  6. school_sys_attachment: 附件表(文件处理任务关联)
  7. school_order_table: 订单表(支付任务关联)
  8. school_member: 会员表(通知任务关联)

关联说明

  1. 队列分类: queue字段标识任务类型和处理队列
  2. 任务数据: payload字段存储任务的具体执行参数
  3. 执行控制: reserve_time和available_time控制任务执行时机
  4. 重试机制: attempts字段记录任务重试次数
  5. 时间管理: create_time记录任务创建时间
  6. 状态跟踪: 通过时间字段判断任务执行状态
  7. 业务关联: 任务可能关联到各种业务表的数据处理
  8. 系统集成: 与系统配置和日志系统集成

索引建议

  1. 主键索引: id(已存在)
  2. 业务索引:
    • queue(队列类型查询)
    • attempts(重试次数查询)
  3. 时间索引:
    • reserve_time(预约时间查询)
    • available_time(可用时间查询)
    • create_time(创建时间查询)
  4. 复合索引:
    • (queue, available_time)(队列可用任务查询)
    • (queue, attempts)(队列重试任务查询)
    • (available_time, attempts)(可执行任务查询)
  5. 状态索引:
    • (reserve_time, available_time)(任务状态查询)

注意事项

  1. 队列名称: queue字段应使用标准的队列命名规范
  2. 负载格式: payload字段应存储有效的JSON或序列化数据
  3. 重试限制: attempts字段应设置合理的重试上限,避免无限重试
  4. 时间精度: 时间字段使用Unix时间戳,注意时区处理
  5. 任务超时: 长时间未处理的任务需要超时机制
  6. 并发控制: 同一任务避免重复执行,需要锁机制
  7. 内存管理: payload字段可能存储大量数据,注意内存使用
  8. 错误处理: 任务执行失败需要记录详细的错误信息
  9. 队列监控: 需要监控队列长度和处理速度
  10. 数据清理: 已完成的任务需要定期清理,避免表过大
  11. 优先级管理: 重要任务需要优先级机制
  12. 死锁检测: 避免任务间的死锁情况
  13. 资源限制: 控制并发任务数量,避免系统资源耗尽
  14. 备份恢复: 重要任务数据需要备份和恢复机制
  15. 性能优化: 大量任务处理时需要考虑性能优化
  16. 安全控制: 任务执行需要适当的权限和安全控制