game 角色相关记录

GameServer启动

getRoleByUid()
内存
map<uint32_t, list<>::iterator> m_map;
list<pair<uint32_t, Role*>> m_list;

共享内存
mfw::CMemKV m_mBlob;
存储:zlib压缩sdp存储

getRoleByUid:
访问内存,如果内存没有,从共享内存加载出来并放到内存中

RoleManager::loop
定时删除不活跃,和根据配置的最小和最大数量删除
{
1.loop 50ms bChanged->serialieze()->setBlobByUid()

2.loop删除的时候如果 bChanged->serialieze()->setBlobByUid()

3.
}

BlobRoleManager::loop
{
将变化的blob放入入库的线程队列中
SyncDbThread
map<string, SyncDataTypePtr> m_mQueueItem;
mfw::CThreadQueue<SyncDataTypePtr> m_dataQueue;
}

SyncDbThread
syncThreadEntry入库线程
从队列m_dataQueue,m_mQueueItem pop出来入库
executeSave 执行入库操作
执行完成之后放入完成队列mfw::CThreadQueue<SyncDataTypePtr> m_finishQueue

loop线程从完成队列m_finishQueue取出来。。

数据库

猜你喜欢

转载自www.cnblogs.com/zzyoucan/p/9326944.html