hustoj实现远程判题需要对源码作添加或修改,对应流程图中的红色部分。
方案一:在web中对接vjudge
需要在web端创建子线程,使其处理表中的远程提交。同时修改core代码,使其不分配线程处理表中的远程提交。这里选择共用同一张solution表,是为了避免建立新表需要还原复杂的调用关系。
![](https://i-blog.csdnimg.cn/blog_migrate/c4af48737501fc998a3fcf675962a0f3.png)
方案二:在core中对接vjudge
core由两部分组成:负责感知任务并分配子线程的judged、负责子线程本地判题的client。我们可以复用judged分配线程时做的并发处理,在调用client时新建分支,用不同的client分别处理远程提交、本地提交。
![](https://i-blog.csdnimg.cn/blog_migrate/f3c108e78cf47b3b1873c0d6305e9148.png)