Skip to content

使用c语言作为判题核心,python语言编写判题机,支持docker一键部署

Notifications You must be signed in to change notification settings

Xayanium/JudgeBox

Repository files navigation

使用c语言作为判题核心,python语言编写判题机,支持docker一键部署

本判题机使用NATS作为消息队列,接受后端传入的判题请求,并通过NATS返回判题结果给后端;使用MinIO作为对象存储服务,存储判题数据

# 后端传递的数据包括: 判题id, 题目id, 用户代码及所用语言, 判题机的时空限制, 是否为特判
                    judge_json = {
                        'judge_id': (int),
                        'problem_id': (int),
                        'problem_code': (string),
                        'language': (string),
                        'code': (string),
                        'time_limit': (int),
                        'memory_limit': (int)
                    }
# 判题结果json数据, 传回给后端
                        result_json = {
                            'judge_id': self.judge_id,
                            'case_id': 0,
                            'time_cost': 0,
                            'memory_cost': 0,
                            'result': '',
                            'message': '',
                            'input_data': '',
                            'sample_output': '',
                            'user_output': ''
                        }

1. 修改 client_settings.json 配置文件信息

2. 在项目根目录下使用 docker build -t judger . 命令生成docker镜像

3. 在项目使用 docker run -v $(pwd)/problem:/app/problem -v $(pwd)/client_settings.json:/app/client_settings.json -d --name judger judger:latest 运行判题机

About

使用c语言作为判题核心,python语言编写判题机,支持docker一键部署

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published