提交 3c1bd8e6 编写于 作者: 丁劲犇's avatar 丁劲犇 😸

get for-cluster net and task eng work, Make it work with framework

上级 2b2fec42
......@@ -19,8 +19,18 @@ namespace ZP_Cluster{
ZPNetwork::zp_net_ThreadPool * netEng() {return m_pClusterNet;}
ZPTaskEngine::zp_pipeline * taskEng() {return m_pClusterEng;}
bool canExit();
//properties.
QString setName(const QString & s){ return m_strTermName = s;}
QString name(){return m_strTermName;}
QHostAddress publishAddr(){return m_addrPublish;}
int publishPort(){return m_nPortPublish;}
QHostAddress setPublishAddr(QHostAddress addr){return m_addrPublish = addr;}
int setPublishPort(int port){return m_nPortPublish = port;}
protected:
QString m_strTermName;//the Terminal's name
QHostAddress m_addrPublish; //The publish address for other terms to connect to
int m_nPortPublish;//The publish port for other terms to connect to
ZPNetwork::zp_net_ThreadPool * m_pClusterNet;
ZPTaskEngine::zp_pipeline * m_pClusterEng;
signals:
......
......@@ -25,7 +25,7 @@ ZPMainFrame::ZPMainFrame(QWidget *parent) :
m_taskEngine = new zp_pipeline(this);
//Cluster is not created
m_pClusterTerm = 0;
m_pClusterTerm = new ZP_Cluster::zp_ClusterTerm("Unknown",this);
//Create databases
m_pDatabases = new ZPDatabase::DatabaseResource(this);
......@@ -56,8 +56,14 @@ ZPMainFrame::~ZPMainFrame()
m_pDatabases->remove_connections();
m_taskEngine->removeThreads(-1);
m_pClusterTerm->netEng()->RemoveAllAddresses();
m_pClusterTerm->netEng()->KickAllClients();
m_pClusterTerm->netEng()->DeactiveImmediately();
m_pClusterTerm->taskEng()->removeThreads(-1);
while (m_netEngine->CanExit()==false || m_taskEngine->canClose()==false
|| m_pDatabases->isRunning()==true)
|| m_pDatabases->isRunning()==true || m_pClusterTerm->canExit()==false)
{
QCoreApplication::processEvents();
QThread::currentThread()->msleep(200);
......@@ -173,6 +179,28 @@ void ZPMainFrame::timerEvent(QTimerEvent * e)
str_msg += ", Msg=" + para.lastError;
str_msg += "\n";
}
//Cluster----------------------------
str_msg += tr("Cluster Group Paras:\n");
str_msg += tr("\tTerminal %1 : %2, published Address: %3:%4\n")
.arg(m_pClusterTerm->name())
.arg(!m_pClusterTerm->netEng()->ListenerNames().empty())
.arg(m_pClusterTerm->publishAddr().toString())
.arg(m_pClusterTerm->publishPort());
nClientThreads = m_pClusterTerm->netEng()->TransThreadNum();
str_msg += tr("Trans Threads: %1\n").arg(nClientThreads);
for (int i=0;i<nClientThreads;i++)
{
str_msg += tr("\t%1:%2").arg(i+1).arg(m_pClusterTerm->netEng()->totalClients(i));
if ((i+1)%5==0)
str_msg += "\n";
}
str_msg += "\n";
str_msg += tr("\tShift Threads: %1\n").arg(m_pClusterTerm->taskEng()->threadsCount());
str_msg += tr("\tShift Payload: %1\n").arg(m_pClusterTerm->taskEng()->payload());
str_msg += tr("\tShift Idle Threads: %1\n").arg(m_pClusterTerm->taskEng()->idleThreads());
str_msg += tr("Smartlink Function Server Paras:\n");
str_msg += tr("\tUser Account Database is : %1\n").arg(m_clientTable->Database_UserAcct());
str_msg += tr("\tEvent Database is : %1\n").arg(m_clientTable->Database_Event());
......@@ -204,7 +232,11 @@ void ZPMainFrame::on_action_Start_Stop_triggered(bool setordel)
m_taskEngine->removeThreads(-1);
m_pDatabases->remove_connections();
while (m_netEngine->CanExit()==false || m_taskEngine->canClose()==false)
this->m_pClusterTerm->netEng()->RemoveListeningAddress("clusterTerm");
this->m_pClusterTerm->netEng()->RemoveClientTransThreads(-1,false);
this->m_pClusterTerm->taskEng()->removeThreads(-1);
while (m_netEngine->CanExit()==false || m_taskEngine->canClose()==false || m_pClusterTerm->canExit()==false)
{
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
QThread::currentThread()->msleep(200);
......@@ -311,6 +343,24 @@ void ZPMainFrame::forkServer(const QString & config_file)
QString strSL_LargetFolder = settings.value("Smartlink/SL_LargetFolder","NUL").toString();
m_clientTable->setLargeFileFolder(strSL_LargetFolder);
//clusters
QString strClusterTermAddr = settings.value("Cluster/strClusterTermAddr","0.0.0.0").toString();
QString strClusterTermPort = settings.value("Cluster/strClusterTermPort","25600").toString();
QString strClusterPubName = settings.value("Cluster/strClusterPubName","Term 001").toString();
QString strClusterPubAddr = settings.value("Cluster/strClusterPubAddr","192.168.1.111").toString();
QString strClusterPubPort = settings.value("Cluster/strClusterPubPort","25600").toString();
int nClusterTransThreads = settings.value("Cluster/nClusterTransThreads","4").toInt();
int nClusterWorkingThreads = settings.value("Cluster/nClusterWorkingThreads","4").toInt();
this->m_pClusterTerm->netEng()->RemoveListeningAddress("clusterTerm");
this->m_pClusterTerm->netEng()->RemoveClientTransThreads(-1,false);
this->m_pClusterTerm->netEng()->AddClientTransThreads(nClusterTransThreads,false);
this->m_pClusterTerm->taskEng()->removeThreads(-1);
this->m_pClusterTerm->taskEng()->addThreads(nClusterWorkingThreads);
this->m_pClusterTerm->setName(strClusterPubName);
this->m_pClusterTerm->setPublishAddr(QHostAddress(strClusterPubAddr));
this->m_pClusterTerm->setPublishPort(strClusterPubPort.toInt());
this->m_pClusterTerm->netEng()->AddListeningAddress("clusterTerm",QHostAddress(strClusterTermAddr),strClusterTermPort.toInt());
}
void ZPMainFrame::on_action_About_triggered()
......
......@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>556</width>
<height>413</height>
<width>640</width>
<height>480</height>
</rect>
</property>
<property name="windowTitle">
......@@ -867,7 +867,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>556</width>
<width>640</width>
<height>23</height>
</rect>
</property>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册