11#include " ../StorageApp_Hdr.h"
22
3- void CALLBACK Storage_TaskAction_Callback (XHANDLE xhToken, double dlTotal, double dlNow, double ulTotal, double ulNow, ENUM_XCLIENT_APIHELP_FILE_STATUS en_DownHttpStatus, XPVOID lParam )
3+ XHTHREAD Session_Action_Thread ( )
44{
5-
5+ while (bIsRun)
6+ {
7+ int nListCount = 0 ;
8+ XNETHANDLE** ppxhToken;
9+ Session_Action_GetAll (&ppxhToken, &nListCount);
10+ for (int i = 0 ; i < nListCount; i++)
11+ {
12+ XCLIENT_APIFILE st_TaskInfo = {};
13+ XHANDLE xhAction = Session_Action_GetToken ((*ppxhToken)[i]);
14+
15+ if (!APIClient_File_Query (xhAction, &st_TaskInfo))
16+ {
17+ Session_Action_Delete ((*ppxhToken)[i]);
18+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X (" 转录动作线程:查询文件传输信息失败,句柄:%lld,错误:%lX" ), (*ppxhToken)[i], Session_GetLastError ());
19+ continue ;
20+ }
21+ XENGINE_ACTIONINFO st_ActionInfo = {};
22+ Session_Action_GetInfo ((*ppxhToken)[i], &st_ActionInfo);
23+ if (ENUM_XCLIENT_APIHELP_FILE_STATUS_COMPLETE == st_TaskInfo.en_DownStatus )
24+ {
25+ APIClient_File_Delete (xhAction);
26+ Session_Action_Delete ((*ppxhToken)[i]);
27+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:完成文件转录下载,句柄:%lld,URL:%s,Bucket:%s,FileName:%s" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName );
28+ }
29+ else if (ENUM_XCLIENT_APIHELP_FILE_STATUS_DOWNLOADDING == st_TaskInfo.en_DownStatus || ENUM_XCLIENT_APIHELP_FILE_STATUS_INIT == st_TaskInfo.en_DownStatus )
30+ {
31+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:文件转录进行中,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,大小:%lf,已处理大小:%lf" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName , st_TaskInfo.dlTotal , st_TaskInfo.dlNow );
32+ }
33+ else
34+ {
35+ APIClient_File_Delete (xhAction);
36+ Session_Action_Delete ((*ppxhToken)[i]);
37+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 转录动作线程:文件转录失败,句柄:%lld,URL:%s,Bucket:%s,FileName:%s,错误:%lX" ), (*ppxhToken)[i], st_ActionInfo.tszFileUrl , st_ActionInfo.tszBucketStr , st_ActionInfo.tszFileName , Session_GetLastError ());
38+ }
39+ }
40+ BaseLib_OperatorMemory_Free ((XPPPMEM)&ppxhToken, nListCount);
41+ std::this_thread::sleep_for (std::chrono::seconds (1 ));
42+ }
43+ return 0 ;
644}
745bool Storage_TaskAction (LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam)
846{
@@ -36,9 +74,13 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps
3674 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,存储Key解析失败,URL:%s,路径:%s,Bucket:%s" ), lpszClientAddr, st_ActionInfo.tszFileUrl , st_ActionInfo.tszFileName , st_ActionInfo.tszBucketStr );
3775 return false ;
3876 }
77+ _stprintf (tszFileName, _X (" %s/%s" ), st_StorageBucket.tszFilePath , st_ActionInfo.tszFileName );
3978 if (0 == _tcsxnicmp (lpszAPIDownload, lpszAPIName, _tcsxlen (lpszAPIDownload)))
4079 {
41- XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileName , tszFileName, true , NULL , Storage_TaskAction_Callback);
80+ XNETHANDLE xhToken = 0 ;
81+ BaseLib_OperatorHandle_Create (&xhToken);
82+
83+ XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileUrl , tszFileName, true );
4284 if (NULL == xhAction)
4385 {
4486 st_HDRParam.nHttpCode = 501 ;
@@ -47,9 +89,8 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps
4789 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, st_ActionInfo.tszBucketStr );
4890 return false ;
4991 }
92+ APIClient_File_Start (xhAction);
5093 // APIClient_File_SetMaxSpeed(xhAction);
51- XNETHANDLE xhToken = 0 ;
52- BaseLib_OperatorHandle_Create (&xhToken);
5394 Session_Action_Insert (xhToken, xhAction, &st_ActionInfo);
5495 Protocol_StoragePacket_Action (tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
5596 HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
@@ -58,7 +99,10 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps
5899 }
59100 else if (0 == _tcsxnicmp (lpszAPIUPload, lpszAPIName, _tcsxlen (lpszAPIUPload)))
60101 {
61- XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileName , tszFileName, false , NULL , Storage_TaskAction_Callback);
102+ XNETHANDLE xhToken = 0 ;
103+ BaseLib_OperatorHandle_Create (&xhToken);
104+
105+ XHANDLE xhAction = APIClient_File_Create (st_ActionInfo.tszFileUrl , tszFileName, false );
62106 if (NULL == xhAction)
63107 {
64108 st_HDRParam.nHttpCode = 501 ;
@@ -67,9 +111,8 @@ bool Storage_TaskAction(LPCXSTR lpszAPIName, LPCXSTR lpszClientAddr, LPCXSTR lps
67111 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 业务客户端:%s,处理用户转录动作失败,下载文件失败,URL:%s,路径:%s,Bucket:%s" ), lpszClientAddr, st_ActionInfo.tszFileUrl , tszFileName, st_ActionInfo.tszBucketStr );
68112 return false ;
69113 }
114+ APIClient_File_Start (xhAction);
70115 // APIClient_File_SetMaxSpeed(xhAction);
71- XNETHANDLE xhToken = 0 ;
72- BaseLib_OperatorHandle_Create (&xhToken);
73116 Session_Action_Insert (xhToken, xhAction, &st_ActionInfo);
74117 Protocol_StoragePacket_Action (tszRVBuffer, &nRVLen, xhToken, &st_ActionInfo);
75118 HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
0 commit comments