如何解决使用库 Mysql++ 将 Recconect 设置为 mysql 服务器,但不可用
我尝试设置重新连接选项并在断开网络连接时使用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(),也就是说,似乎连接无法识别网络现在正常。
问候 乔治
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。