本文最后更新于 1717 天前,其中的信息可能已经有所发展或是发生改变。
Table of Content
经过进一步的打磨,CUP Online Judge的判题机终于独立于前后端,可以作为一个后台服务在系统运行了。
考虑到判题过程强依赖操作系统环境,因此整个过程我也打了docker-compose包,不想看下面冗长的部署内容,直接使用的可以前往CUP Online Judge NG Docker Judger体验懒人部署的快感。
系统要求
- Ubuntu 16.04 or above
- X86_64 CPU
- Node.js v10 or above
环境要求
- 预先准备好数据文件夹
部署
- 拉取后台服务代码:
$ git clone https://github.com/ryanlee2014/CUP-Online-Judge-Judge-Daemon-Service.git judge-daemon
- 安装依赖
$ cd judge-daemon && npm install
- 编译
$ npm run build
- 拉取判题机代码
$ cd ../
$ git clone https://github.com/ryanlee2014/CUP-Online-Judge-Judger.git judger
- 运行安装脚本
$ cd judger && ./build.sh
对于CentOS用户,请自行安装脚本中给出的依赖
- 拷贝
wsjudged
到后台服务的目录下, 并添加执行权限
$ chmod +x wsjudged
$ cp wsjudged ../judge-daemon
- 填写数据库信息
$ cd /home/judge/etc
$ #edit judge.conf
7.1 judge.conf内容说明
OJ_HOST_NAME=//数据库地址
OJ_USER_NAME=//数据库账号
OJ_PASSWORD=//数据库密码
- 启动服务
$ # go to judge-daemon
$ npm start
后台程序将暴露5110
端口和后端交互。
若出现端口冲突,请更改config.json
文件中”port”字段为其他可用端口。
若未了解程序交互逻辑与判题机内部结构,请不要改动除第一个端口以外的端口。
你看这么长的部署过程多麻烦,坑还多,不如用docker-compose方便
所以想用的就会最上面去下docker版吧
既然这么麻烦,为什么不直接用docker版呢?
由于docker版不支持使用共享内存作为判题暂存空间,因此性能会有一定损失。
对判题速度及其敏感的用户建议用非docker版,否则就使用自行部署的版本