His和esp落盘dhl
His和esp落盘dhl
[TOC]
ESP落盘本地DHL日志
数据流转过程
-
ESP 通过 TKESPService.ini 中的
[Config]-DTCBillList配置,读取要落盘的 sid 和对应的 billtype -
ESP 通过 esp 配置接收到目标 sid 信息,将信息落盘到本地。文件路径如下所示:
-
DHL 采集,流转到 DTC,DTC 将账单落到 Kafka。
-
kafka 再落到 hive。
-
hive 后续流转到数数,数数提供统计方法。
-
【占位】
业务流程
1. 确定原子事件id
落盘的 sid 是有范围要求的,不同的 sid 会写到不用的本地文件中,对应关系如下表:
| sid | 文件名 | DHL采集(待补充) |
|---|---|---|
| 10000xxx | ESP_DATA_1_20250731_09.log | 默认采集 |
| 10001xxx | ESP_DATA_2_20250731_09.log | 默认采集 |
| 80000xxx | ESP_DATA_3_20250731_09.log | 默认采集 |
| 其它 | ESP_DATA_0_20250731_09.log | 不操作 |
对应代码如下:
2. 新增 esp 配置
需要有 esp 配置来接收对应的原子事件,配置可参考10000316,10000904,配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
{
"desc": "赏金猎人活动目标、幸存成功、猎杀成功数据统计",
"module": [
{
"starttime": "2025-07-30 00:00:00",
"title": 1,
"type": "filter_time",
"next": 0
}
],
"sid": 10000904
}
3. 修改 esp.ini 配置
在 TKESPService.ini - [Config] - DTCBillList 中增加对应的 sid 和账单号。
配置示例如下,最新配置需参照线上。
1
2
[Config]
DTCBillList ="10000904:10000904,10000315:10000315,10000316:10000316,10000317:10000317,10000067:10000067,10000278:10000278,80000000:8541,80000001:8531,80000002:8501,80000003:8542,80000004:8543,10000307:8505,10000208:8508"
更新至除了回调之外的所有集群。
HIS落盘本地DHL日志
HisStore 中落盘日志的逻辑
-
保存历史数据(函数
CHisConfig::SaveHistory())时:- 只要 hid == 207 :调用函数
CCTRClient::HIS2CTR(), - 其它 hid 的配置,如果 billtype 配置不为 0 ,也会同样调用函数
CCTRClient::HIS2CTR()落盘日志。
- 只要 hid == 207 :调用函数
-
在函数
CCTRClient::HIS2CTR()中:对 billtype 为 8411、8413、8412 的数据添加固定的 json 字段(硬编码好的),然后异步落盘日志。 -
异步落盘日志:
- ini 中配置 DTCSenderSwitch == 1:发送 DTC。
- DTCSenderSwitch == 2:落盘本地日志,DHL采集。(当前 HisStore 的 ini 配置都为 2)
- DTCSenderSwitch == 3:发送 DTC 且落盘本地 DHL 日志。
-
落盘本地 DHL 日志时,不同的 billtype 写入的日志名规则如下:
-
本地落盘日志的路径为
D:/TKServer/LogData/His,示例: -
【占位】
赛程回顾
- 比赛或游戏调用协议
TKID_HISRECORDERS2OTHERS_COLLECT_MATCH_DATA或TKID_HISRECORDERS2OTHERS_COLLECT_MATCH_DATA_EX - 协议 case 函数
OnRecordMatchData()或OnRecordMatchDataEx():在这两个函数中根据传入的 json 中的"H" - "K"字段判断是赛程回顾的哪个业务,然后赋值 hid,例如 511、512、211、212 等。最后调用函数SaveHistory()。 - 向后流转的过程中会落盘 DHL 日志,也会像普通 his 业务一样通过 gss 写入 redis。
赛程回顾的配置在 hisstore.ini 中示例如下:
1
2
3
4
[ids]
majiang=501744,2007003,2006764,504351,...
doudizhu=2007874,504381,502232,502133,504382,...
gerentuanti=2007876,2007870,2007869,2007871,2007872,2007814,...
CVS 中的配置
不同业务的 billtype 是记录在 CVS.define_hisstore 表中的,示例如下:
本文由作者按照
CC BY 4.0
进行授权




