Go to file
liqiankun 495fef85b0 error->Error 2017-12-14 17:42:40 +08:00
src error->Error 2017-12-14 17:42:40 +08:00
.gitignore
pom.xml 更改日志记录方式为logback 2017-11-17 21:05:39 +08:00
readme.md

readme.md

bridge的功能主要是用于educoder前台与k8s集群进行交互主要有以下三个接口

发布实训publishGame

  1. 写测试用例到/data/workspace/testCases/${trainingID}/ 目录
  2. 根据实训配置参数gameInfo生成该实训的评测脚本模板到/data/workspace/shell/${trainingID}/ 目录
    评测脚本根据实训环境的不同采用不同的ShellService实现类来生成

开启实训openGameInstance

  1. 克隆版本库 gitClone
  2. 生成Tpi评测脚本Tpi评测脚本只是在Tpm评测脚本模板的基础上设定了当前工作目录拷贝到工作目录并在脚本执行首行切换到tpi工作目录
  3. 根据tpiID和实训环境读取yaml目录下对应的rc文件创建Rc命名格式xx-master-${tpiID} (先拷贝该类实训的模板yaml文件并加上tpi的标志信息通过拷贝后的文件创建rc)

评测: buildJobForInstance

  1. 取版本库远端更新 gitPull
  2. 根据tpiID和实训环境找到对应的pod调用评测脚本进行评测这个过程中如果pod已经被销毁则需要重新创建pod
  3. 执行完评测脚本之后将脚本执行玩的结果进行再封装回传给educoder前台

Redis相关

  • key:task 存任务一个element为一个任务字符串可用来生成任务其score为新来的在最大基础上自增1用于rank
  • key:pod 存正在运行任务的pod及此时在该pod上运行的任务数任务数一般是1。若该pod的执行任务数降为0则移除