db: use async writes for fire-and-forget queries
This commit is contained in:
@@ -1095,13 +1095,14 @@ void CClientManager::RESULT_PRICELIST_LOAD_FOR_UPDATE(SQLMsg* pMsg)
|
||||
|
||||
void CClientManager::QUERY_SAFEBOX_SAVE(CPeer * pkPeer, TSafeboxTable * pTable)
|
||||
{
|
||||
(void)pkPeer;
|
||||
char szQuery[QUERY_MAX_LEN];
|
||||
|
||||
snprintf(szQuery, sizeof(szQuery),
|
||||
"UPDATE safebox%s SET gold='%u' WHERE account_id=%u",
|
||||
GetTablePostfix(), pTable->dwGold, pTable->dwID);
|
||||
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_SAFEBOX_SAVE, pkPeer->GetHandle(), NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
}
|
||||
|
||||
void CClientManager::QUERY_EMPIRE_SELECT(CPeer * pkPeer, DWORD dwHandle, TEmpireSelectPacket * p)
|
||||
@@ -1396,6 +1397,7 @@ void CClientManager::QUERY_ITEM_FLUSH(CPeer * pkPeer, const char * c_pData)
|
||||
|
||||
void CClientManager::QUERY_ITEM_SAVE(CPeer * pkPeer, const char * c_pData)
|
||||
{
|
||||
(void)pkPeer;
|
||||
TPlayerItem * p = (TPlayerItem *) c_pData;
|
||||
|
||||
// 창고면 캐쉬하지 않고, 캐쉬에 있던 것도 빼버려야 한다.
|
||||
@@ -1450,7 +1452,7 @@ void CClientManager::QUERY_ITEM_SAVE(CPeer * pkPeer, const char * c_pData)
|
||||
p->aAttr[5].bType, p->aAttr[5].sValue,
|
||||
p->aAttr[6].bType, p->aAttr[6].sValue);
|
||||
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_ITEM_SAVE, pkPeer->GetHandle(), NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1695,6 +1697,7 @@ void CClientManager::UpdateItemPriceListCache()
|
||||
|
||||
void CClientManager::QUERY_ITEM_DESTROY(CPeer * pkPeer, const char * c_pData)
|
||||
{
|
||||
(void)pkPeer;
|
||||
DWORD dwID = *(DWORD *) c_pData;
|
||||
c_pData += sizeof(DWORD);
|
||||
|
||||
@@ -1708,10 +1711,7 @@ void CClientManager::QUERY_ITEM_DESTROY(CPeer * pkPeer, const char * c_pData)
|
||||
if (g_log)
|
||||
sys_log(0, "GD::ITEM_DESTROY: PID %u ID %u", dwPID, dwID);
|
||||
|
||||
if (dwPID == 0) // 아무도 가진 사람이 없었다면, 비동기 쿼리
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
else
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_ITEM_DESTROY, pkPeer->GetHandle(), NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user