11#include " MQService_Hdr.h"
22
3- void CALLBACK MessageQueue_CBTask_TimePublish (LPCXSTR lpszQueueName, __int64x nIDMsg, __int64x nIDTime , XPVOID lParam)
3+ void CALLBACK MessageQueue_CBTask_TimePublish (XENGINE_DBTIMERELEASE* pSt_DBInfo , XPVOID lParam)
44{
55 int nMsgLen = 0 ;
66 XCHAR tszMsgBuffer[4096 ];
77 XENGINE_PROTOCOLHDR st_ProtocolHdr;
88 XENGINE_PROTOCOL_XMQ st_MQProtocol;
99 XENGINE_DBMESSAGEQUEUE st_DBInfo;
10- XENGINE_DBTIMERELEASE st_DBTime;
1110
1211 memset (tszMsgBuffer, ' \0 ' , sizeof (tszMsgBuffer));
1312 memset (&st_ProtocolHdr, ' \0 ' , sizeof (XENGINE_PROTOCOLHDR));
1413 memset (&st_MQProtocol, ' \0 ' , sizeof (XENGINE_PROTOCOL_XMQ));
1514 memset (&st_DBInfo, ' \0 ' , sizeof (XENGINE_DBMESSAGEQUEUE));
16- memset (&st_DBTime, ' \0 ' , sizeof (XENGINE_DBTIMERELEASE));
1715
1816 st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER;
1917 st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_XMQ;
@@ -23,13 +21,12 @@ void CALLBACK MessageQueue_CBTask_TimePublish(LPCXSTR lpszQueueName, __int64x nI
2321 st_ProtocolHdr.unPacketSize = sizeof (XENGINE_PROTOCOL_XMQ);
2422 st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL;
2523
26- st_MQProtocol.nPubTime = nIDTime;
27- st_MQProtocol.nSerial = nIDMsg;
28- _tcsxcpy (st_MQProtocol.tszMQKey , lpszQueueName );
24+ st_MQProtocol.nPubTime = pSt_DBInfo-> nIDTime ;
25+ st_MQProtocol.nSerial = pSt_DBInfo-> nIDMsg ;
26+ _tcsxcpy (st_MQProtocol.tszMQKey , pSt_DBInfo-> tszQueueName );
2927
30- st_DBTime.nIDMsg = nIDMsg;
31- st_DBInfo.nQueueSerial = nIDMsg;
32- _tcsxcpy (st_DBInfo.tszQueueName , lpszQueueName);
28+ st_DBInfo.nQueueSerial = pSt_DBInfo->nIDMsg ;
29+ _tcsxcpy (st_DBInfo.tszQueueName , pSt_DBInfo->tszQueueName );
3330 DBModule_MQData_Query (&st_DBInfo);
3431 // 是否需要通知
3532 int nListCount = 0 ;
@@ -40,10 +37,14 @@ void CALLBACK MessageQueue_CBTask_TimePublish(LPCXSTR lpszQueueName, __int64x nI
4037 int nNetType = 0 ;
4138 XCHAR tszUserAddr[128 ];
4239 memset (tszUserAddr, ' \0 ' , sizeof (tszUserAddr));
43- // 跳过自己
44- if (0 == _tcsxncmp (st_DBInfo. tszUserName , ppSt_ListUser[i]-> tszUserName , _tcsxlen (st_DBInfo. tszUserName )) )
40+
41+ if (pSt_DBInfo-> bBreak )
4542 {
46- continue ;
43+ // 跳过自己
44+ if (0 == _tcsxncmp (st_DBInfo.tszUserName , ppSt_ListUser[i]->tszUserName , _tcsxlen (st_DBInfo.tszUserName )))
45+ {
46+ continue ;
47+ }
4748 }
4849 SessionModule_Client_GetAddr (ppSt_ListUser[i]->tszUserName , tszUserAddr);
4950 SessionModule_Client_GetType (tszUserAddr, &nNetType);
@@ -55,12 +56,12 @@ void CALLBACK MessageQueue_CBTask_TimePublish(LPCXSTR lpszQueueName, __int64x nI
5556 if (st_DBConfig.st_MQUser .st_UserTime .bPubClear )
5657 {
5758 // 移除这条消息
58- DBModule_MQUser_TimeDelete (&st_DBTime );
59+ DBModule_MQUser_TimeDelete (pSt_DBInfo );
5960 }
6061 else
6162 {
6263 // 更新
63- DBModule_MQUser_TimeUPDate (&st_DBTime );
64+ DBModule_MQUser_TimeUPDate (pSt_DBInfo );
6465 }
65- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 定时任务,消息主题:%s,序列:%lld,定时任务分发成功,客户端个数:%d" ), lpszQueueName, nIDMsg, nListCount);
66+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 定时任务,消息主题:%s,序列:%lld,定时任务分发成功,客户端个数:%d" ), pSt_DBInfo-> tszQueueName , pSt_DBInfo-> nIDMsg , nListCount);
6667}
0 commit comments