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