/judge

ACM在线判题系统(OJ)的判题实现(java+python)

Primary LanguageJava

ACM在线判题系统(OJ)判题模块

判题职责:

判题服务oj系统的web业务服务器分别部署在两台机器上,通过kafka来通信,通信的内容就是判题任务,用户提交代码到系统,系统将次判题任务转为json字符串发送到kafka中,判题服务则从kafka中拉取任务,完成判题之后将结果发送到kafka中,业务服务器拉取结构存入数据库,完成判题。
所以kafka中有两个topic,一个用于传输判题任务,一个传输判题结果

支持判题代码:

  • gcc
  • g++
  • python3
  • java
  • pascal

判题流程:

  • 生成对应代码源文件
  • 编译文件
  • 运行程序
  • 给出结果
  • 通过kafka发回业务服务器