ZhuChengZhong / hhoj

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

黄淮OJ

数据库:Mysql

运行环境:Linux

框架:SSM

消息队列:redis

虚拟化技术:docker

简单介绍:项目由Web系统+判题机组成,两系统通过消息队列进行通信..

一、判题机1.0介绍:

目前的判题机使用docker作为编译与运行环境,Redis作为消息队列。

判题机工作流程:

1.主线程不停的轮询消息队列,从中获取待判的消息,消息被序列化为JSON格式,以字符串的形式存放在Redis消息队列。消息格式如下:

{

"submitId":id,
"code":"代码",
"language":"代码语言",
"memaryLimit":内存限制,
"timeLimit":时间限制,
"points":[
	{"input":"输入示例1","output":"输出示例1"},
	{"input":"输入示例2","output":"输出示例2"}
	]

}

2. 创建判题任务并交由线程池执行

3.将执行后的结果发送至结果消息队列,一次判题任务结束

About


Languages

Language:JavaScript 65.2%Language:CSS 20.5%Language:Java 11.9%Language:HTML 2.4%Language:C++ 0.0%