项目作者: 1510460325
项目描述 :
ACM在线判题系统(OJ)的判题实现(java+python)
高级语言: Java
项目地址: git://github.com/1510460325/judge.git
ACM在线判题系统(OJ)判题模块
判题职责:
判题服务和oj系统的web业务服务器分别部署在两台机器上,通过kafka来通信,通信的内容就是判题任务,用户提交代码到系统,系统将次判题任务转为json字符串发送到kafka中,判题服务则从kafka中拉取任务,完成判题之后将结果发送到kafka中,业务服务器拉取结构存入数据库,完成判题。
所以kafka中有两个topic,一个用于传输判题任务,一个传输判题结果
支持判题代码:
- gcc
- g++
- python3
- java
- pascal
判题流程:
- 生成对应代码源文件
- 编译文件
- 运行程序
- 给出结果
- 通过kafka发回业务服务器