负载均衡式的在线OJ项目编写(七) - 实践
一. 前期内容回顾
对前面的准备不熟悉的,可以看前面的内容,连接如下:
二. 一键上线和综合调试
1.题目编号乱序问题解决
//根据题目数据构建网页
bool AllQuestions(std::string *html)
{
bool ret = true;
vector all;
if(model_.GetAllQUestions(&all))
{
//获取一个题目信息成功,将所有的题目数据构建成网页
//题目进行排序
sort(all.begin(),all.end(),[](const Question& q1,const Question& q2){
return atoi(q1.number.c_str()) < atoi(q2.number.c_str());
});
view_.AllExpandHtml(all,html);
}
else
{
*html = "获取题目失败,形成题目列表失败";
ret = false;
}
return ret;
}

2.主机下线之后,上线功能的实现

void OnlineMachine()
{
//当所有主机都离线的时候,我们统一上线
mtx.lock();
online.insert(online.end(),offline.begin(),offline.end());
offline.erase(offline.begin(),offline.end());
mtx.unlock();
LOG(INFO) << "所有的主机又上线了" << "\n";
}

三.题目数据库化
1.在数据库中设计可以远程登录的MYSQL账户,并给他赋权 (oj_client)





这样,我们就将我们的oj的库的所有权限给了oj_client了


目前oj数据库中没有表
2.设计表结构 (数据库: oj,表: oj_questions)
首先下载mysql workbench软件,下载链接如下(直接无脑下载就行):
<


浙公网安备 33010602011771号