问题描述
我尝试设置重新连接选项并在断开网络连接时使用api ping(),但它不起作用,我将部分代码放在这里:
conn.set_option(new mysqlpp::ReconnectOption(true));
conn.set_option(new mysqlpp::ConnectTimeoutOption(288000));
if (!conn.connect(dbname.c_str(),server_addr.c_str(),username.c_str(),password.c_str(),3306))
{
LOG_ERROR("Create Connect Failed...");
return nullptr;
}
...
if (!conn.connected())
{
LOG_WARN("The connection is disconnected...");
while (!conn.ping())
{
LOG_DEBUG("Check the network is available...");
std::this_thread::sleep_for(std::chrono::seconds(10));
// if (conn.connected())
// break;
}
return res;
}
try {
Query query = conn.query(sql);
res = query.store();
LOG_INFO( "Successed:" << sql);
return res;
}
catch(...)
{}
}
虽然我使用了option,尝试ping()服务器,当我断开本地网络,然后恢复网络时,程序总是只检查conn.ping(),也就是说,似乎连接无法识别网络现在正常。
有什么方法可以重连mysql++吗?
问候 乔治
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)