db: use async writes for cache flushes
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
#include "stdafx.h"
|
||||
#include "Cache.h"
|
||||
|
||||
#include "QID.h"
|
||||
#include "ClientManager.h"
|
||||
#include "Main.h"
|
||||
|
||||
@@ -58,7 +57,7 @@ void CItemCache::OnFlush()
|
||||
{
|
||||
char szQuery[QUERY_MAX_LEN];
|
||||
snprintf(szQuery, sizeof(szQuery), "DELETE FROM item%s WHERE id=%u", GetTablePostfix(), m_data.id);
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_ITEM_DESTROY, 0, NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "ItemCache::Flush : DELETE %u %s", m_data.id, szQuery);
|
||||
@@ -140,7 +139,7 @@ void CItemCache::OnFlush()
|
||||
if (g_test_server)
|
||||
sys_log(0, "ItemCache::Flush :REPLACE (%s)", szItemQuery);
|
||||
|
||||
CDBManager::instance().ReturnQuery(szItemQuery, QID_ITEM_SAVE, 0, NULL);
|
||||
CDBManager::instance().AsyncQuery(szItemQuery);
|
||||
|
||||
//g_item_info.Add(p->vnum);
|
||||
++g_item_count;
|
||||
@@ -168,7 +167,7 @@ void CPlayerTableCache::OnFlush()
|
||||
|
||||
char szQuery[QUERY_MAX_LEN];
|
||||
CreatePlayerSaveQuery(szQuery, sizeof(szQuery), &m_data);
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_PLAYER_SAVE, 0, NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
}
|
||||
|
||||
// MYSHOP_PRICE_LIST
|
||||
@@ -248,7 +247,7 @@ void CItemPriceListTableCache::OnFlush()
|
||||
//
|
||||
|
||||
snprintf(szQuery, sizeof(szQuery), "DELETE FROM myshop_pricelist%s WHERE owner_id = %u", GetTablePostfix(), m_data.dwOwnerID);
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_ITEMPRICE_DESTROY, 0, NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
|
||||
//
|
||||
// 캐시의 내용을 모두 DB 에 쓴다.
|
||||
@@ -257,10 +256,10 @@ void CItemPriceListTableCache::OnFlush()
|
||||
for (int idx = 0; idx < m_data.byCount; ++idx)
|
||||
{
|
||||
snprintf(szQuery, sizeof(szQuery),
|
||||
// "INSERT INTO myshop_pricelist%s(owner_id, item_vnum, price) VALUES(%u, %u, %u)",
|
||||
"REPLACE myshop_pricelist%s (owner_id, item_vnum, price) VALUES(%u, %u, %u)",
|
||||
// "INSERT INTO myshop_pricelist%s(owner_id, item_vnum, price) VALUES(%u, %u, %u)",
|
||||
"REPLACE myshop_pricelist%s (owner_id, item_vnum, price) VALUES(%u, %u, %u)",
|
||||
GetTablePostfix(), m_data.dwOwnerID, m_data.aPriceInfo[idx].dwVnum, m_data.aPriceInfo[idx].dwPrice);
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_ITEMPRICE_SAVE, 0, NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
}
|
||||
|
||||
sys_log(0, "ItemPriceListTableCache::Flush : OwnerID[%u] Update [%u]Items", m_data.dwOwnerID, m_data.byCount);
|
||||
|
||||
Reference in New Issue
Block a user