
负载式在线OJ
文章平均质量分 62
ChoSeitaku
是一名在校大学生,目前在做C语言、C++、蓝桥杯、算法、考研数学、408的内容,后期会做深度学习、机器学习、神经网络、人工智能、AIGC、WEB3、开发相关的内容
展开
-
14.onlineoj项目总结(C++)
HTTP协议被⼴泛⽤于服务器之间的通信,主要因为HTTP是⼀个简单、易于理解和实现的协议并且HTTP是⼀个⼴泛⽀持的协议,⼏乎所有的操作系统和编程语⾔都有对HTTP的⽀持,使得跨平台和跨语⾔的通信变得容易。oj_server收到⽤⼾提交的数据,使⽤json将该数据反序列化,拼接相应题⽬的测试⽤例代码,将新的代码序列化,利⽤httplib构建⼀个客⼾端,通过RR轮转选择负载最低的主机发送给某个。a. 是⼀个单头⽂件实现的库,使⽤简单,只需要clone仓库后包含⼀个头⽂件即可,⽆需其他安装以及库的链接。原创 2025-03-11 22:33:27 · 1003 阅读 · 0 评论 -
13.重新设计oj_model|综合测试|顶层makefile(C++)
把路径粘贴到oj_lib_search.conf里。将文件导入并改名为mysql-connector。选择mysql connector c。如果到时候mysql找不到系统库。直接刷新题库,就有了第二道题。链接到oj_server里。复制一个oj_model。原创 2025-02-27 12:48:22 · 321 阅读 · 0 评论 -
12.MySQL版题目设计|创建用户并赋权|MySQLWorkbench创建表结构|测试录题功能(mysql)
下载MySQL_Workbench。在左边第二栏找到workbench。用oj_client链接到3306。选择右边的form editor。点击apply finish。选择链接database。选中语句,点击闪电运行。原创 2025-02-26 23:01:44 · 335 阅读 · 0 评论 -
11.获取页面代码和题号|完成发起和获取结果请求|显示结果到网页|上线与综合测试(C++)
在oj_control.hpp的Judge函数里添加一个LOG。使用ctrl+\,一键上线。原创 2025-02-26 17:27:13 · 228 阅读 · 0 评论 -
10.前端部分|首页index.html|题库all_questions.html|指定题目one_question.html(html)
所谓的对样式进行调整,本质是对html中的标签的样式做调整标签的样式做调整原创 2025-02-26 14:05:04 · 868 阅读 · 0 评论 -
9.编写负载均衡模块|编写judge功能|postman进行调试(C++)
输入地址http://47.94.228.92:8080/judge/2。将oj_server和compile_server都重新编译一下。要给编译模块添加—D条件编译掉测试用例中的头文件incldue。启动三台服务器,运行8082,8083和8084。再运行oj_server。原创 2025-02-26 11:19:18 · 448 阅读 · 0 评论 -
8.编写control模块整体结构|引入ctemplate|编写view获取题目列表和指定题目(C++)
如果./autogen.sh报错,安装下面的工具。原理:将保存数据的字典加到待被渲染的网页内容里。添加template模板文件。如果报错,没有找到依赖。原创 2025-02-25 13:09:11 · 591 阅读 · 0 评论 -
7.建立文件版题库|编写model文件|使用boost split字符串切分(C++)
OJ不是只把header.cpp的代码提交给compile_and_run, 而是把header.cpp和tail.cpp合并成一个文件,最终提交给后台编译运行服务的代码是。下面的代码,我们不想让编译器编译的时候,保留它,而是裁剪掉。仅仅是为了让我们设计测试用例的时候,不要报错。原创 2025-02-24 20:58:04 · 282 阅读 · 0 评论 -
6.将cr打包成网络服务|使用postman进行测试|编写oj_server的服务路由功能(C++)
地址是http://47.94.228.92:8080/compile_and_run。这样输入不同的端口号进行申请,就会有多个编译服务。在oj_server.cc中加入。选择POST,raw和JSON。请求时候直接输入端口号。本质:建立一个小型网站。原创 2025-02-24 14:27:52 · 496 阅读 · 0 评论 -
5综合调试cr模块|测试json|测试输出代码|测试cr模块|清理临时文件|接入cpp-httplib|测试httplib(C++)
这样测试之后,temp不会有临时文件,如果后期想调试可以注释掉这些代码。创建一个wwwroot目录和index.html文件用于测试。将导入的httplib.h拷贝到comm文件夹底下。原创 2025-02-23 03:10:39 · 183 阅读 · 0 评论 -
4.编写compile_run模块|认识jsoncpp|基础框架|编译(C++)
正确的调用compile and run。适配用户请求, 定制通信协议字段。原创 2025-02-22 10:49:46 · 307 阅读 · 0 评论 -
3测试资源限制|加入信号|内存申请失败|CPU使用超时|runner设置资源限制(C++)
创建一个test.cc文件。原创 2025-02-20 17:48:03 · 329 阅读 · 0 评论 -
2.开发测试运行模块Runner(C++)
【代码】2.开发测试运行模块Runner(C++)原创 2025-02-20 10:04:21 · 290 阅读 · 0 评论 -
1.compiler服务设计|makefile|util|compiler|日志功能|日志功能调用|测试编译模块(C++)
compile_run.hpp:整合功能,既调用compiler又调用runner。compile_server.cc:基于网络请求的编译并运行服务。在comm文件夹创建一个util.hpp,提供一个工具类。在temp文件夹里添加一个code.cpp作为测试代码。提供的服务:编译并运行代码,得到格式化的相关的结果。compiler.hpp:提供编译服务。编写compile_server.cc。编译运行compile_server。runner.hpp:提供运行服务。在comm新建一个log.hpp。原创 2025-02-19 17:25:13 · 439 阅读 · 0 评论 -
0.项目概览|技术及开发环境|宏观结构|编写思路|前期准备(C++)
创建项目目录OnlineJudge。新建三个模块文件夹以及md文件。我们的项目核心是三个模块。远程链接vscode。原创 2025-02-19 10:39:09 · 262 阅读 · 0 评论