feat(使用全局变量的 notionAPI): 避免多次创建NotionAPI,有效利用内置的concurrency并发请求限制

This commit is contained in:
anime
2025-01-04 01:00:49 +08:00
parent 2831d2fb0c
commit 019f5e470f
3 changed files with 12 additions and 14 deletions

View File

@@ -1,8 +1,7 @@
import BLOG from '@/blog.config'
import { getDataFromCache, setDataToCache } from '@/lib/cache/cache_manager'
import { NotionAPI } from 'notion-client'
import { deepClone, delay } from '../utils'
import getNotionAPI from '@/lib/notion/getNotionAPI'
import notionAPI from '@/lib/notion/getNotionAPI'
/**
* 获取文章内容
@@ -43,9 +42,8 @@ export async function getPageWithRetry(id, from, retryAttempts = 3) {
retryAttempts < 3 ? `剩余重试次数:${retryAttempts}` : ''
)
try {
const api = getNotionAPI()
const start = new Date().getTime()
const pageData = await api.getPage(id)
const pageData = await notionAPI.getPage(id)
const end = new Date().getTime()
console.log('[API<<--响应]', `耗时:${end - start}ms - from:${from}`)
return pageData
@@ -163,14 +161,12 @@ export const fetchInBatches = async (ids, batchSize = 100) => {
ids = [ids]
}
const api = getNotionAPI()
let fetchedBlocks = {}
for (let i = 0; i < ids.length; i += batchSize) {
const batch = ids.slice(i, i + batchSize)
console.log('[API-->>请求] Fetching missing blocks', batch, ids.length)
const start = new Date().getTime()
const pageChunk = await api.getBlocks(batch)
const pageChunk = await notionAPI.getBlocks(batch)
const end = new Date().getTime()
console.log(
`[API<<--响应] 耗时:${end - start}ms Fetching missing blocks count:${ids.length} `