void NFCMysqlConnectMgrModule::CheckMysql()
{

	if (mnLastCheckTime + 10 > GetPluginManager()->GetNowTime())
	{
		return;
	}

	mnLastCheckTime = GetPluginManager()->GetNowTime();

	//////////////////////////////////////////////////////////////////////////
	int nServerID = 0;
	std::vector<int> xIntVec;
	for (NFIMysqlDriver* pMysqlDriver = mvMysql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvMysql.Next(nServerID))
	{ 
		if (!pMysqlDriver->Enable())
		{
			xIntVec.push_back(nServerID);
			mvInvalidMsyql.AddElement(nServerID, pMysqlDriver);
		}
	}

	for (int i = 0; i < xIntVec.size(); ++i)
	{
		mvMysql.RemoveElement(xIntVec[i]);
	}
	//////////////////////////////////////////////////////////////////////////
	xIntVec.clear();
	nServerID = 0;

	for (NFIMysqlDriver* pMysqlDriver = mvInvalidMsyql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvInvalidMsyql.Next(nServerID))
	{
		if (!pMysqlDriver->Enable() && pMysqlDriver->CanReconnect())
		{
			pMysqlDriver->Reconnect();
			if (pMysqlDriver->Enable())
			{
				xIntVec.push_back(nServerID);
				mvMysql.AddElement(nServerID, pMysqlDriver);
			}
		}
	}

	for (int i = 0; i < xIntVec.size(); ++i)
	{
		mvInvalidMsyql.RemoveElement(xIntVec[i]);
	}

}
Пример #2
0
void NFCMysqlDriverManager::CheckMysql()
{
    //////////////////////////////////////////////////////////////////////////
    int nServerID = 0;
    std::vector<int> xIntVec;
    for (NFIMysqlDriver* pMysqlDriver = mvMysql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvMysql.Next(nServerID))
    {
        if (!pMysqlDriver->Enable())
        {
            xIntVec.push_back(nServerID);
            mvInvalidMsyql.AddElement(nServerID, pMysqlDriver);
        }
    }

    for (int i = 0; i < xIntVec.size(); ++i)
    {
        mvMysql.RemoveElement(xIntVec[i]);
    }
    //////////////////////////////////////////////////////////////////////////
    xIntVec.clear();
    nServerID = 0;

    for (NFIMysqlDriver* pMysqlDriver = mvInvalidMsyql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvInvalidMsyql.Next(nServerID))
    {
        if (!pMysqlDriver->Enable() && pMysqlDriver->CanReconnect())
        {
            pMysqlDriver->Reconnect();
            if (pMysqlDriver->Enable())
            {
                xIntVec.push_back(nServerID);
                mvMysql.AddElement(nServerID, pMysqlDriver);
            }
        }
    }

    for (int i = 0; i < xIntVec.size(); ++i)
    {
        mvInvalidMsyql.RemoveElement(xIntVec[i]);
    }

}