Skip to content

后端项目总览

后端基于 Python 3.11+ 构建,核心框架采用 Flask(视具体实现而定)。为了支撑高耗时的煤热解动力学计算,架构采用了计算密型任务异步化的设计方案,通过 Celery 与 Redis 实现任务队列管理。


异步任务调度

通过 Celery 将耗时的 CPD 模拟任务推送到后台 Worker,防止长时间的数值计算阻塞 Web 请求。

算法模块解耦

核心计算逻辑(Calculate_module)与业务接口层完全解耦,支持作为独立库进行测试与优化。

容器化部署

内置 Dockerfile,确保在不同计算环境下(服务器/本地)Python 依赖环境与编译环境的一致性。


后端遵循典型的服务层架构(Service-Oriented Architecture),确保逻辑复用与清晰的调用链:

  • DirectoryBackend/
    • Directoryapp/
      • Directoryapi/ # 路由层:定义接口,处理 HTTP 请求/响应
      • Directorydatabase/ # SQLAlchemy 模型定义与数据库连接池配置
      • Directoryservice/ # 封装核心业务逻辑,协调计算模块与数据库
      • Directorytasks/ # Celery 异步任务定义
      • Directoryutils/ # JWT 加密、日志记录、格式化工具
    • DirectoryCalculate_module/ # 算法层:煤热解 CPD 核心物理模型实现
    • config.py # 全局配置:Redis/MySQL 地址、JWT 密钥等
    • init_db.py # 数据初始化:建表、默认管理员账号录入
    • requirements.txt # 环境依赖:Numba, Scipy, NumPy 等计算库
    • run.py # 入口程序:启动 Flask 实例

这是系统的核心资产。它独立于 Web 框架存在,内部通常包含利用 NumbaCython 加速的高性能计算代码。这种解耦设计允许科研人员在不了解 Web 开发的情况下,直接更新物理模型。

  • 任务分发task/ 接收前端参数,验证后生成 task_id 并将其推送至 Redis 队列。
  • 异步计算:后台 Worker 从队列抓取任务,调用 Calculate_module 进行模拟,并将结果存入 Redis 或数据库。
  • 状态查询api/ 提供状态轮询接口,实时反馈计算进度。
  • 负责用户信息、仿真历史记录、实验 Excel 原始数据的持久化存储。
  • 采用 ORM 映射,确保数据库迁移与维护的安全性。

  1. 环境安装:通过 pip install -r requirements.txt 安装高性能计算库与 Web 依赖。
  2. 初始化:运行 python init_db.py 完成数据库表结构的初次同步。
  3. 启动服务
    • 启动后端:python run.py
    • 启动 Worker(异步计算):celery -A app.tasks worker