|
|
1 tháng trước cách đây | |
|---|---|---|
| .. | ||
| 01-核心状态修改.md | 10 tháng trước cách đây | |
| 02-组织关系处理.md | 10 tháng trước cách đây | |
| 03-经济资助处理.md | 10 tháng trước cách đây | |
| 04-其他业务处理.md | 10 tháng trước cách đây | |
| 06-完整SQL脚本.md | 10 tháng trước cách đây | |
| 07-快速执行脚本.md | 10 tháng trước cách đây | |
| PRODUCTION_DEPLOYMENT.md | 10 tháng trước cách đây | |
| README.md | 10 tháng trước cách đây | |
| control_scripts.sh | 10 tháng trước cách đây | |
| data.conf | 1 tháng trước cách đây | |
| data.conf.prod | 10 tháng trước cách đây | |
| dict字典.sql | 10 tháng trước cách đây | |
| health_check.sh | 10 tháng trước cách đây | |
| his.sql | 10 tháng trước cách đây | |
| hzdyjs_xg.sql | 10 tháng trước cách đây | |
| process_student_changes.sh | 10 tháng trước cách đây | |
| process_student_changes_fixed.sh | 10 tháng trước cách đây | |
| process_student_resume.sh | 10 tháng trước cách đây | |
| process_student_resume_fixed.sh | 10 tháng trước cách đây | |
| prod_debug.sh | 10 tháng trước cách đây | |
| xg_student_status_change.sql | 10 tháng trước cách đây | |
| 学生退学休学毕业处理清单.md | 10 tháng trước cách đây | |
本项目包含用于处理学生退学、休学、复学、毕业状态变更的自动化脚本。
process_student_changes.sh - 处理毕业、退学、休学的状态变更process_student_resume.sh - 处理复学的状态变更control_scripts.sh - 脚本控制程序(启动、停止、重启)health_check.sh - 服务健康检查脚本data.conf - 数据库配置文件test_data.sql - 测试数据脚本optional_crontab_config.txt - 可选的定时任务配置(备用)process_student_changes.sh)处理类型:XIU_XUE(休学), TUI_XUE(退学), BI_YE(毕业)
执行步骤:
process_student_resume.sh)处理类型:FU_XUE(复学)
执行步骤:
# Database configuration
DB_HOST="localhost" # 数据库主机
DB_PORT="3306" # 数据库端口
DB_NAME="hzdyjs_xg" # 数据库名
DB_USER="root" # 数据库用户名
DB_PASS="password" # 数据库密码
# Script configuration
LOG_DIR="./student_status_change" # 日志目录
SCRIPT_DIR="/path/to/scripts" # 脚本目录
LOCK_FILE="${SCRIPT_DIR}/script.lock" # 锁文件
# Processing configuration
BATCH_SIZE=100 # 每次处理记录数
MAX_RETRY=3 # 最大重试次数
RETRY_DELAY=5 # 重试间隔(秒)
CYCLE_INTERVAL=600 # 循环间隔时间(秒),默认10分钟
编辑 data.conf 文件,设置正确的数据库连接信息:
DB_HOST="your_db_host"
DB_PORT="3306"
DB_NAME="hzdyjs_xg"
DB_USER="your_username"
DB_PASS="your_password"
脚本采用持续运行模式,启动后会自动循环处理:
# 启动所有服务(持续运行模式)
./control_scripts.sh startall
# 查看服务状态
./control_scripts.sh statusall
./control_scripts.sh startall 一次性启动所有服务如需手动执行单个脚本处理一次:
# 处理毕业/退学/休学(一次性执行)
./process_student_changes.sh
# 处理复学(一次性执行)
./process_student_resume.sh
# 正常停止所有服务
./control_scripts.sh stopall
# 强制停止所有服务(如果正常停止失败)
# 手动kill进程或使用系统命令
# 执行健康检查
./health_check.sh
# 执行检查并生成详细报告
./health_check.sh report
### 3. 使用控制脚本管理
```bash
# 启动指定脚本
./control_scripts.sh start changes # 启动状态变更处理脚本
./control_scripts.sh start resume # 启动复学处理脚本
# 停止指定脚本
./control_scripts.sh stop changes # 停止状态变更处理脚本
./control_scripts.sh stop resume # 停止复学处理脚本
# 重启指定脚本
./control_scripts.sh restart changes # 重启状态变更处理脚本
./control_scripts.sh restart resume # 重启复学处理脚本
# 查看脚本状态
./control_scripts.sh status changes # 查看状态变更处理脚本状态
./control_scripts.sh status resume # 查看复学处理脚本状态
# 批量操作
./control_scripts.sh startall # 启动所有脚本
./control_scripts.sh stopall # 停止所有脚本
./control_scripts.sh statusall # 查看所有脚本状态
xg_student_status_change - 学生状态变更记录表
process_status: 处理状态 (0=未处理,1=已处理)change_type: 变更类型 (XIU_XUE/TUI_XUE/FU_XUE/BI_YE)xg_student_msg - 学生基本信息表sys_user - 系统用户表xg_class_pos_msg - 班级干部信息表club_member - 社团成员表stgl_member - 志愿者成员表xg_dorm_bed_student - 宿舍床位分配表xg_dorm_bed - 宿舍床位表所有主表都有对应的his表用于数据备份:
xg_student_msg_hissys_user_hisxg_class_pos_msg_hisclub_member_hisstgl_member_hisxg_dorm_bed_student_his./student_status_change/process_student_changes_YYYYMMDD_HHMMSS.log[2025-01-01 10:00:00] [INFO] Starting student status change processing script
[2025-01-01 10:00:01] [INFO] Database connection successful
[2025-01-01 10:00:02] [INFO] Processing student change - ID: 123, Student: 20240001 (456), Type: TUI_XUE
[2025-01-01 10:00:03] [INFO] Successfully processed student change - ID: 123, Student: 20240001
[2025-01-01 10:00:03] [INFO] Processing completed - Processed: 1, Failed: 0
./health_check.sh 脚本定期检查服务状态数据库连接失败
data.conf 中的数据库配置脚本重复运行
rm -f script.lock处理失败
# 强制停止所有相关进程
pkill -f "process_student_changes.sh"
pkill -f "process_student_resume.sh"
# 清理锁文件
rm -f *.lock
rm -f pids/*.pid
如遇到问题,请:
脚本采用持续运行模式,启动后自动循环执行:
./control_scripts.sh startall./control_scripts.sh stopall如果需要使用crontab模式(不推荐),参考 optional_crontab_config.txt 文件:
# 添加定时任务(仅在特殊情况下使用)
crontab -e
# 参考配置文件内容
| 特性 | 持续运行模式 | Crontab模式 |
|---|---|---|
| 启动方式 | ./control_scripts.sh startall |
crontab配置 |
| 执行频率 | 每10分钟自动 | 可自定义时间 |
| 资源占用 | 常驻进程 | 按需启动 |
| 监控便利性 | 更容易监控 | 需要额外配置 |
| 维护复杂度 | 较低 | 较高 |
推荐使用持续运行模式,简单可靠,易于监控管理。
data.conf 配置数据库连接信息./control_scripts.sh startall 启动持续运行的服务./health_check.sh 检查服务状态./control_scripts.sh stopall 停止服务test_data.sql 插入测试记录./control_scripts.sh startall./student_status_change/ 目录的日志xg_student_status_change.process_status 已更新为1最后更新: 2025-01-01 版本: v1.0.0