# Rookie Online Judge Core **Repository Path**: WaviFreka/rookie-online-judge-core ## Basic Information - **Project Name**: Rookie Online Judge Core - **Description**: 自制的oj核心 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2021-11-19 - **Last Updated**: 2022-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: Online-judge, Cpp, Java ## README # 菜鸟OJ——Core 其架构层次如下: ![image-20211124084115305](images/readme/image-20211124084115305.png) Core就是判题机这一层。 ## 架构说明 - 前端:前端展示页面 - 调度层:响应前端请求,连接判题机、数据库、文件管理器 - 文件管理器:存储用户头像、判题数据 - 判题机:进行判题操作 - 数据库:存储所有数据 # 基本逻辑说明 接收到一个判题请求后,去查询本地数据库是否与远程统一数据库的判题数据一致(MD5)。如果一致则直接利用本地数据进行下一步,避免重复传输数据。如果不一致则需要到远程仓库下载数据。 远程仓库的地址由调度层获取。判题机不做配置。判题队列也由调度层维护。 > 关于调度层做分布式,可以采用Nginx那一套流程,来使得调度层分布式调度。 在代码、数据均准备完成后,创建一个`docker`容器,模拟`Linux`的环境进行测试。数据通过挂载的方式传递。然后判题机对数据进行比对或交给`SPJ`进行比对。 # 更新摘要 | 更新版本 | 更新时间 | 更新摘要 | 更新人 | | -------- | -------- | -------- | ------ | | | | | | | | | | | | | | | |