From d738743ed3ebb215149297b7626f89918d694deb Mon Sep 17 00:00:00 2001 From: server Date: Mon, 13 Apr 2026 23:47:38 +0200 Subject: [PATCH] db: use async writes for cache flushes --- src/db/Cache.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/db/Cache.cpp b/src/db/Cache.cpp index f944b09..0ca68d4 100644 --- a/src/db/Cache.cpp +++ b/src/db/Cache.cpp @@ -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);