qduoj测评机增加

教程
在这里插入图片描述

两处代码:

oj-rsync-master:
    image: registry.cn-hangzhou.aliyuncs.com/onlinejudge/oj_rsync
    container_name: oj-rsync-master
    volumes:
      - $PWD/data/backend/test_case:/test_case:ro
      - $PWD/data/rsync_master:/log
    environment:
      - RSYNC_MODE=master
      - RSYNC_USER=ojrsync
      - RSYNC_PASSWORD=CHANGE_THIS_PASSWORD
    ports:
      - "0.0.0.0:873:873" // 打开web服务器端口
oj-rsync-slave:
    image: registry.cn-hangzhou.aliyuncs.com/onlinejudge/oj_rsync
    container_name: oj-rsync-slave
    volumes:
      - $PWD/data/backend/test_case:/test_case
      - $PWD/data/rsync_slave:/log
    environment:
      - RSYNC_MODE=slave
      - RSYNC_USER=ojrsync
      - RSYNC_PASSWORD=CHANGE_THIS_PASSWORD
      - RSYNC_MASTER_ADDR=YOUR_BACKEND_ADDR

评测机其实就是一台服务器,而oj部署的服务器被称为web服务器,评测机的数量就是服务器的数量。当然你也可以一个服务器,整多个测评机,这样会拉低web服务器的性能,反而使得测评机变慢。

评测机的部署,克隆下来onlinejudgedeploy,然后按照图中的步骤来即可。
示例
点1
judgeserver的添加是在评测机上
点2
server_url,backend_url都在评测机的judge-server块里,token也在,同web服务器的dockeryml的token一样,web服务器的token是自定义的。web服务器的token修改时,backend和judgeserver的token都要改(但是我不知道为何我的服务器改不了。。)
点3
backend_url的修改https://web服务器域名(nginx)/api/judge_server_heartbeat/ (外网如何访问的这就如何写)
server_url的修改http://评测机的公网ip地址 (端口开的是80端口,这里就用http来访问测评机,如果要用https访问的话需要配置ssl证书,nginx之类的,很麻烦所以这里直接用http了)


数据问题

我们建好新测评机,但是新测评机上会自动同步web机上的测实数据,但是带宽小的话会慢点。

tail -f data/rsync_slave/rsync_slave.log

我们可以在deploy目录下,跑上面这条命令查询同步情况,如果oj,CE test not found,但是我们查询情况一直卡住不动,那么就是出问题了,我们只需要重启测评机评测进程容器即可在deploy目录下跑 docker-compose restart,让新增测评机重新同步数据。
当同步完了,再跑这个命令的话,我们就会看到显示这个,这个就是代表我们评测时,code文件的传输速度。
在这里插入图片描述

©️2020 CSDN 皮肤主题: 1024 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值