1.把原来的服务器/data数据scp到新服务器的/data
在数据存放的机器上切换到相应目录并执行 scp ./data 用户名(新)@ip(新):/
2.把docker-compose.yml文件复制到新服务器
3.切换到yml文件所在目录,执行sudo docker-compose up -d
version: "3"
services:
oj-redis:
image: redis:4.0-alpine
container_name: oj-redis
restart: always
volumes:
- /data/data/redis:/data
oj-postgres:
image: postgres:10-alpine
container_name: oj-postgres
restart: always
command: postgres -c max_connections=1000
ports:
- "127.0.0.1:12348:5432"
volumes:
- /data/data/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_DB=onlinejudge
- POSTGRES_USER=onlinejudge
- POSTGRES_PASSWORD=onlinejudge
judge-server:
image: registry.cn-hangzhou.aliyuncs.com/wsl/judge_server
container_name: judge-server
restart: always
read_only: true
cap_drop:
- SETPCAP
- MKNOD
- NET_BIND_SERVICE
- SYS_CHROOT
- SETFCAP
- FSETID
tmpfs:
- /tmp
volumes:
- /data/backend/test_case:/test_case:ro
- /data/judge_server/log:/log
- /data/judge_server/run:/judger
environment:
- SERVICE_URL=http://judge-server:8080
- BACKEND_URL=http://oj-backend:8000/api/judge_server_heartbeat/
- TOKEN=DASETALENT
oj-backend:
image: registry.cn-hangzhou.aliyuncs.com/wsl/oj_backend
container_name: oj-backend
restart: always
depends_on:
- oj-redis
- oj-postgres
- judge-server
volumes:
- /data/data/backend:/data
- /data/data/app:/app
environment:
- POSTGRES_DB=onlinejudge
- POSTGRES_USER=onlinejudge
- POSTGRES_PASSWORD=onlinejudge
- JUDGE_SERVER_TOKEN=DASETALENT
# - FORCE_HTTPS=1
# - STATIC_CDN_HOST=cdn.oj.com
ports:
- "0.0.0.0:80:8000"
- "0.0.0.0:443:1443"
题目表述准确无歧义
明确给出输入数据范围
题面中给出的sample不应出现在测试用例中
样例中,小样例比例不高于20%,中等规模样例40%~60%,剩下为接近数据最大范围的样例
出题应准备能够保证正确性的标准程序代码
需要检查相同算法,不同的语言的结果是否相同。
避免出现如c语言可以通过,python实现的相同算法代码超时现象
至少两人验题
出题人提交标程测试,验证测试用例的正确性
非出题人按照做题的流程,阅读题面,检查是否有歧义、表述不清等问题;编写代码进行提交测试。
实现标程的其它语言版本,测试是否出现3.1中的问题,视情况可通过修改题目时间限制。
机试前准备阶段
1.机试oj主平台上创建比赛,设置密码,关闭real time rank,设置不可见。创建一个新服务器
2.创建题目,满足2题目创建要求
3.验题,满足3验题要求,验题时需要打开可见,先确保设置了密码,验完及时恢复不可见状态
4.将主平台备份至新服务器,运行服务,并验证可用性。参考1平台部署部分。
考场快开始阶段
5.确认 密码已设置,real time rank为关闭,并且处于不可见状态
马上开始阶段
6.设置比赛为可见,让考生能够进入比赛输入密码页面
7.公布比赛密码
考试中
8.观测平台可用性,若出现服务异常,优先进入服务器,执行sudo docker-compose restart热重启,没恢复则进行操作9;若恢复则继续考试,不需要操作9
9.让考生进入备用服务器考试
考试结束(立刻要做的)
10.修改比赛密码,同时设置为不可见。
成绩统计
11.参考机试结束后续流程.pdf
其中连接数据库部分做出如下变化:
使用SSH通道:
连接数据库:
数据库、用户名、密码皆为onlinejudge