From b563744e2404ac3103cdc1c6b69d3b8c0fc38126 Mon Sep 17 00:00:00 2001 From: anime Date: Thu, 2 Jan 2025 20:45:18 +0800 Subject: [PATCH] =?UTF-8?q?perf(=E4=BD=BF=E7=94=A8=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E4=BC=98=E5=8C=96):=20=E5=A4=8D=E6=9D=82=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BD=AC=E6=8D=A2=E5=87=BD=E6=95=B0=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/db/getSiteData.js | 9 ++++--- lib/notion/getPostBlocks.js | 51 +++++++++++++++---------------------- 2 files changed, 26 insertions(+), 34 deletions(-) diff --git a/lib/db/getSiteData.js b/lib/db/getSiteData.js index b898c32b..5dfd9717 100755 --- a/lib/db/getSiteData.js +++ b/lib/db/getSiteData.js @@ -66,13 +66,14 @@ export async function getGlobalData({ */ export async function getSiteDataByPageId({ pageId, from }) { // 获取NOTION原始数据,此接支持mem缓存。 - const pageRecordMap = await getPage(pageId, from) return await getOrSetDataWithCache( `site_data_${pageId}`, - converNotionToSiteDate, + async (pageId, from) => { + const pageRecordMap = await getPage(pageId, from) + return converNotionToSiteDate(pageId, from, deepClone(pageRecordMap)) + }, pageId, - from, - deepClone(pageRecordMap) + from ) } diff --git a/lib/notion/getPostBlocks.js b/lib/notion/getPostBlocks.js index 0ab2270c..9cd03345 100644 --- a/lib/notion/getPostBlocks.js +++ b/lib/notion/getPostBlocks.js @@ -1,9 +1,5 @@ import BLOG from '@/blog.config' -import { - getDataFromCache, - getOrSetDataWithCache, - setDataToCache -} from '@/lib/cache/cache_manager' +import { getDataFromCache, getOrSetDataWithCache, setDataToCache } from '@/lib/cache/cache_manager' import { deepClone, delay } from '../utils' import getNotionAPI from '@/lib/notion/getNotionAPI' @@ -15,33 +11,28 @@ import getNotionAPI from '@/lib/notion/getNotionAPI' * @returns */ export async function getPage(id, from = null, slice) { - const cacheKey = `page_block_${id}` - let pageBlock = await getDataFromCache(cacheKey) - if (pageBlock) { - // console.debug('[API<<--缓存]', `from:${from}`, cacheKey) - return await getOrSetDataWithCache( - `page_converted_block_${id}_${slice}`, - convertNotionBlocksToPost, - id, - pageBlock, - slice - ) - } + return await getOrSetDataWithCache( + `page_content_${id}_${slice}`, + async (id, slice) => { + const cacheKey = `page_block_${id}` + let pageBlock = await getDataFromCache(cacheKey) + if (pageBlock) { + // console.debug('[API<<--缓存]', `from:${from}`, cacheKey) + return convertNotionBlocksToPost(id, pageBlock, slice) + } - // 抓取最新数据 - pageBlock = await getPageWithRetry(id, from) + // 抓取最新数据 + pageBlock = await getPageWithRetry(id, from) - if (pageBlock) { - await setDataToCache(cacheKey, pageBlock) - return await getOrSetDataWithCache( - `page_converted_block_${id}_${slice}`, - convertNotionBlocksToPost, - id, - pageBlock, - slice - ) - } - return pageBlock + if (pageBlock) { + await setDataToCache(cacheKey, pageBlock) + return convertNotionBlocksToPost(id, pageBlock, slice) + } + return pageBlock + }, + id, + slice + ) } /**