@@ -7,11 +7,14 @@ XNETHANDLE xhHBDownload = 0;
77XNETHANDLE xhHBUPLoader = 0 ;
88XNETHANDLE xhNetDownload = 0 ;
99XNETHANDLE xhNetUPLoader = 0 ;
10+ XNETHANDLE xhNetCenter = 0 ;
1011XNETHANDLE xhUPPool = 0 ;
1112XNETHANDLE xhDLPool = 0 ;
1213XNETHANDLE xhSDPool = 0 ;
14+ XNETHANDLE xhCTPool = 0 ;
1315XHANDLE xhUPHttp = NULL ;
1416XHANDLE xhDLHttp = NULL ;
17+ XHANDLE xhCenterHttp = NULL ;
1518
1619XENGINE_SERVERCONFIG st_ServiceCfg;
1720
@@ -21,27 +24,22 @@ void ServiceApp_Stop(int signo)
2124 {
2225 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T (" 存储中心服务器退出..." ));
2326 bIsRun = FALSE ;
24- printf (" 1\n " );
2527 RfcComponents_HttpServer_DestroyEx (xhUPHttp);
2628 RfcComponents_HttpServer_DestroyEx (xhDLHttp);
27- printf ( " 2 \n " );
29+ RfcComponents_HttpServer_DestroyEx (xhCenterHttp );
2830 NetCore_TCPXCore_DestroyEx (xhNetDownload);
2931 NetCore_TCPXCore_DestroyEx (xhNetUPLoader);
30- printf ( " 3 \n " );
32+ NetCore_TCPXCore_DestroyEx (xhNetCenter );
3133 SocketOpt_HeartBeat_DestoryEx (xhHBDownload);
3234 SocketOpt_HeartBeat_DestoryEx (xhHBUPLoader);
33- printf (" 4\n " );
3435 ManagePool_Thread_NQDestroy (xhUPPool);
3536 ManagePool_Thread_NQDestroy (xhDLPool);
3637 ManagePool_Thread_NQDestroy (xhSDPool);
37- printf ( " 5 \n " );
38+ ManagePool_Thread_NQDestroy (xhCTPool );
3839 HelpComponents_XLog_Destroy (xhLog);
39- printf (" 6\n " );
4040 Session_DLStroage_Destory ();
4141 Session_UPStroage_Destory ();
42- printf (" 7\n " );
4342 XStorageSQL_Destory ();
44- printf (" 8\n " );
4543 exit (0 );
4644 }
4745}
@@ -90,6 +88,7 @@ int main(int argc, char** argv)
9088 THREADPOOL_PARAMENT** ppSt_ListUPThread;
9189 THREADPOOL_PARAMENT** ppSt_ListDLThread;
9290 THREADPOOL_PARAMENT** ppSt_ListSDThread;
91+ THREADPOOL_PARAMENT** ppSt_ListCTThread;
9392
9493 memset (&st_XLogConfig, ' \0 ' , sizeof (HELPCOMPONENTS_XLOG_CONFIGURE));
9594 memset (&st_ServiceCfg, ' \0 ' , sizeof (XENGINE_SERVERCONFIG));
@@ -163,6 +162,13 @@ int main(int argc, char** argv)
163162 goto XENGINE_EXITAPP;
164163 }
165164 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 启动服务中,初始化HTTP上传服务成功,IO线程个数:%d" ), st_ServiceCfg.st_XMax .nStorageUPThread );
165+ xhCenterHttp = RfcComponents_HttpServer_InitEx (lpszHTTPCode, lpszHTTPMime, st_ServiceCfg.st_XMax .nCenterThread );
166+ if (NULL == xhCenterHttp)
167+ {
168+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 启动服务器中,初始化HTTP业务服务失败,错误:%lX" ), HttpServer_GetLastError ());
169+ goto XENGINE_EXITAPP;
170+ }
171+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 启动服务中,初始化HTTP业务服务成功,IO线程个数:%d" ), st_ServiceCfg.st_XMax .nCenterThread );
166172
167173 if (!NetCore_TCPXCore_StartEx (&xhNetDownload, st_ServiceCfg.nStorageDLPort , st_ServiceCfg.st_XMax .nMaxClient , st_ServiceCfg.st_XMax .nIOThread ))
168174 {
@@ -182,6 +188,15 @@ int main(int argc, char** argv)
182188 NetCore_TCPXCore_RegisterCallBackEx (xhNetUPLoader, XEngine_Callback_UPLoaderLogin, XEngine_Callback_UPLoaderRecv, XEngine_Callback_UPLoaderLeave);
183189 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 启动服务中,注册上传存储网络服务事件成功!" ));
184190
191+ if (!NetCore_TCPXCore_StartEx (&xhNetCenter, st_ServiceCfg.nCenterPort , st_ServiceCfg.st_XMax .nMaxClient , st_ServiceCfg.st_XMax .nIOThread ))
192+ {
193+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 启动服务器中,启动业务控制存储网络服务失败,端口:%d,错误:%lX" ), st_ServiceCfg.nCenterPort , NetCore_GetLastError ());
194+ goto XENGINE_EXITAPP;
195+ }
196+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 启动服务中,启动业务控制存储网络服务成功,句柄:%llu,端口:%d,IO线程个数:%d" ), xhNetCenter, st_ServiceCfg.nCenterPort , st_ServiceCfg.st_XMax .nIOThread );
197+ NetCore_TCPXCore_RegisterCallBackEx (xhNetCenter, XEngine_Callback_UPLoaderLogin, XEngine_Callback_UPLoaderRecv, XEngine_Callback_UPLoaderLeave);
198+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 启动服务中,注册业务控制存储存储网络服务事件成功!" ));
199+
185200 if (!Session_DLStroage_Init (st_ServiceCfg.st_XMax .nStorageDLThread ))
186201 {
187202 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 启动服务器中,启动下载会话服务失败,错误:%lX" ), Session_GetLastError ());
@@ -198,6 +213,7 @@ int main(int argc, char** argv)
198213 BaseLib_OperatorMemory_Malloc ((XPPPMEM)&ppSt_ListDLThread, st_ServiceCfg.st_XMax .nStorageDLThread , sizeof (THREADPOOL_PARAMENT));
199214 BaseLib_OperatorMemory_Malloc ((XPPPMEM)&ppSt_ListSDThread, st_ServiceCfg.st_XMax .nStorageDLThread , sizeof (THREADPOOL_PARAMENT));
200215 BaseLib_OperatorMemory_Malloc ((XPPPMEM)&ppSt_ListUPThread, st_ServiceCfg.st_XMax .nStorageUPThread , sizeof (THREADPOOL_PARAMENT));
216+ BaseLib_OperatorMemory_Malloc ((XPPPMEM)&ppSt_ListCTThread, st_ServiceCfg.st_XMax .nCenterThread , sizeof (THREADPOOL_PARAMENT));
201217 for (int i = 0 ; i < st_ServiceCfg.st_XMax .nStorageDLThread ; i++)
202218 {
203219 int * pInt_Pos = new int ;
@@ -237,6 +253,21 @@ int main(int argc, char** argv)
237253 }
238254 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 启动服务中,启动HTTP上传任务处理线程池成功,线程池个数:%d" ), st_ServiceCfg.st_XMax .nStorageDLThread );
239255
256+ for (int i = 0 ; i < st_ServiceCfg.st_XMax .nCenterThread ; i++)
257+ {
258+ int * pInt_Pos = new int ;
259+ *pInt_Pos = i;
260+
261+ ppSt_ListCTThread[i]->lParam = pInt_Pos;
262+ ppSt_ListCTThread[i]->fpCall_ThreadsTask = XEngine_Center_HTTPThread;
263+ }
264+ if (!ManagePool_Thread_NQCreate (&xhCTPool, &ppSt_ListCTThread, st_ServiceCfg.st_XMax .nCenterThread ))
265+ {
266+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 启动服务中,启动HTTP业务处理线程池失败,错误:%d" ), errno);
267+ goto XENGINE_EXITAPP;
268+ }
269+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 启动服务中,启动HTTP业务任务处理线程池成功,线程池个数:%d" ), st_ServiceCfg.st_XMax .nCenterThread );
270+
240271 m_StrVersion = st_ServiceCfg.st_XVer .pStl_ListStorage ->front ();
241272 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 所有服务成功启动,存储中心服务运行中,发行版本次数:%d,当前运行版本:%s。。。" ), st_ServiceCfg.st_XVer .pStl_ListStorage ->size (), m_StrVersion.c_str ());
242273
@@ -252,15 +283,18 @@ int main(int argc, char** argv)
252283 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 存储中心服务关闭,服务器退出..." ));
253284 bIsRun = FALSE ;
254285
286+ RfcComponents_HttpServer_DestroyEx (xhUPHttp);
287+ RfcComponents_HttpServer_DestroyEx (xhDLHttp);
288+ RfcComponents_HttpServer_DestroyEx (xhCenterHttp);
255289 NetCore_TCPXCore_DestroyEx (xhNetDownload);
256290 NetCore_TCPXCore_DestroyEx (xhNetUPLoader);
291+ NetCore_TCPXCore_DestroyEx (xhNetCenter);
257292 SocketOpt_HeartBeat_DestoryEx (xhHBDownload);
258293 SocketOpt_HeartBeat_DestoryEx (xhHBUPLoader);
259- RfcComponents_HttpServer_DestroyEx (xhUPHttp);
260- RfcComponents_HttpServer_DestroyEx (xhDLHttp);
261294 ManagePool_Thread_NQDestroy (xhUPPool);
262295 ManagePool_Thread_NQDestroy (xhDLPool);
263296 ManagePool_Thread_NQDestroy (xhSDPool);
297+ ManagePool_Thread_NQDestroy (xhCTPool);
264298 HelpComponents_XLog_Destroy (xhLog);
265299 Session_DLStroage_Destory ();
266300 Session_UPStroage_Destory ();
0 commit comments