Установите Recconect на сервер mysql с библиотекой 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(...)
   {}
}

Хотя, я использовал вариант и пытаюсь пинговать() сервер, когда я отключаю локальную сеть, а затем восстанавливаю сеть, программа всегда проверяет только conn.ping(), то есть кажется, что соединение могло не определить сеть теперь в порядке.

Можно ли использовать какой-либо метод для повторного подключения mysql++?

С уважением Джордж


person George    schedule 10.02.2021    source источник