Make sure we maintain cluster connections.

This commit is contained in:
JoelKatz
2013-03-18 18:07:03 -07:00
parent 7a6a199df4
commit 42c7ec7965
2 changed files with 26 additions and 3 deletions

View File

@@ -209,6 +209,12 @@ void ConnectionPool::policyEnforce()
// Enforce policies.
policyLowWater();
if (((++mPhase) % 12) == 0)
{
cLog(lsTRACE) << "Making configured connections";
makeConfigured();
}
// Schedule next enforcement.
mPolicyTimer.expires_at(boost::posix_time::second_clock::universal_time()+boost::posix_time::seconds(POLICY_INTERVAL_SECONDS));
mPolicyTimer.async_wait(boost::bind(&ConnectionPool::policyHandler, this, _1));
@@ -313,11 +319,11 @@ Peer::pointer ConnectionPool::peerConnect(const std::string& strIp, int iPort)
if (ppResult)
{
ppResult->connect(strIp, iPort);
//cLog(lsINFO) << "Pool: Connecting: " << ADDRESS_SHARED(ppResult) << ": " << strIp << " " << iPort;
cLog(lsTRACE) << "Pool: Connecting: " << ADDRESS_SHARED(ppResult) << ": " << strIp << " " << iPort;
}
else
{
//cLog(lsINFO) << "Pool: Already connected: " << strIp << " " << iPort;
cLog(lsTRACE) << "Pool: Already connected: " << strIp << " " << iPort;
}
return ppResult;
@@ -623,6 +629,20 @@ void ConnectionPool::scanHandler(const boost::system::error_code& ecResult)
}
}
void ConnectionPool::makeConfigured()
{
if (theConfig.RUN_STANDALONE)
return;
BOOST_FOREACH(const std::string& strPeer, theConfig.IPS)
{
std::string strIP;
int iPort;
if (parseIpPort(strPeer, strIP, iPort))
peerConnect(strIP, iPort);
}
}
// Scan ips as per db entries.
void ConnectionPool::scanRefresh()
{