Я пытаюсь установить опцию переподключения и использовать 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(...)
{}
}
Хотя, я использовал вариант и пытаюсь пинговать() сервер, когда я отключаю локальную сеть, а затем восстанавливаю сеть, программа всегда проверяет только conn.ping(), то есть кажется, что соединение могло не определить сеть теперь в порядке.
Можно ли использовать какой-либо метод для повторного подключения mysql++?
С уважением Джордж