2025-07-11 15:55:23 +08:00
2025-07-11 10:43:14 +08:00
2025-07-11 15:55:23 +08:00
2025-07-10 13:42:54 +08:00
2025-07-11 10:43:14 +08:00
2025-07-11 10:43:14 +08:00
2025-07-11 15:55:23 +08:00
2025-07-11 15:55:23 +08:00
2025-07-10 13:42:54 +08:00
2025-07-11 10:43:14 +08:00
2025-07-10 13:42:54 +08:00
2025-07-11 10:43:14 +08:00

成绩查询系统 (RSJselet)

这是一个高性能的学生成绩查询系统支持12,000人同时在线查询。

主要特性

  • 支持高并发查询12,000人同时在线
  • 使用Redis缓存减轻数据库压力
  • 提供等待室机制避免系统过载
  • 自动释放数据库连接,避免资源泄漏
  • 手机号验证和内网可访问

系统架构

  • 后端: FastAPI + Uvicorn
  • 数据库: MySQL
  • 缓存: Redis
  • 前端: HTML + CSS

快速开始

系统提供了测试数据和快速启动脚本,方便本地开发和测试:

Windows系统

# 修改run_with_test_data.bat中的数据库连接信息
# 然后运行批处理文件
run_with_test_data.bat

Linux/Mac系统

# 修改run_with_test_data.sh中的数据库连接信息
chmod +x run_with_test_data.sh
./run_with_test_data.sh

启动后访问 http://localhost:8000 即可使用系统。

测试数据

系统提供了约1000条测试数据包括

  • 江苏省教育局的语文、数学、英语教师岗位
  • 淮安市政府的行政助理、文案策划岗位
  • 淮安市医院的内科医生、外科医生、护士岗位
  • 江苏省人社厅的人事专员、劳动监察员、社保专员岗位

测试账号示例:

  • 准考证号: 101081100101手机号: 13800000001
  • 准考证号: 101081100201手机号: 13800000006
  • 准考证号: 101081100301手机号: 13800000010

部署方式

系统提供多种部署方式:

Docker部署推荐

使用Docker Compose一键部署所有服务

# 构建并启动
docker-compose up -d

Linux可执行文件部署

将系统打包为单个可执行文件方便在Linux服务器上部署

# 构建可执行文件
chmod +x build_executable.sh
./build_executable.sh

# 部署到服务器
scp -r dist/* user@server:/path/to/deploy/

# 在服务器上启动
cd /path/to/deploy/
./start.sh

更多详情

请查看 部署指南 获取更多详细信息。

高并发支持

系统已经过优化可以支持12,000人同时查询

  1. 连接池优化: 高效管理数据库和Redis连接
  2. 等待室机制: 控制并发查询数量,防止系统崩溃
  3. 多进程支持: 利用多核CPU提高处理能力
  4. 缓存策略: 自适应缓存热门数据

配置和扩展

所有系统参数都可以通过环境变量配置,请参考 部署指南 获取完整配置选项。

如需支持更大规模并发,可参考扩展策略进行水平或垂直扩展。

基本使用 - 从数据库获取真实数据、测试等待室和高并发

python cstest.py --concurrency 100 --total 200

不测试等待室,只测试并发性能

python cstest.py --no-waiting-room --concurrency 500 --total 1000

专注于测试等待室功能

python cstest.py --mode waiting-room --concurrency 200 --total 300

高强度缓存测试

python cstest.py --mode cache

Description
No description provided
Readme 600 KiB
Languages
Python 74.1%
HTML 21.3%
CSS 3%
Shell 1.6%