Merged in feat/redis-fix (pull request #3207)
Feat/redis fix * feat(redis): delete multiple keys in one partition scan * fix(BOOK-603): make it possible to do multiple deletes in redis at once using one partition scan Approved-by: Linus Flood
This commit is contained in:
@@ -97,44 +97,43 @@ export async function POST(request: NextRequest) {
|
||||
|
||||
const cacheClient = await getCacheClient()
|
||||
|
||||
const keysToDelete = []
|
||||
|
||||
const contentTypeUidTag = generateTag(entryLocale, content_type.uid)
|
||||
revalidateLogger.debug(
|
||||
`Revalidating tag by content_type_uid: ${contentTypeUidTag}`
|
||||
)
|
||||
revalidateTag(contentTypeUidTag)
|
||||
await cacheClient.deleteKey(contentTypeUidTag, { fuzzy: true })
|
||||
keysToDelete.push(contentTypeUidTag)
|
||||
|
||||
revalidateLogger.debug(`Revalidating refsTag: ${refsTag}`)
|
||||
revalidateTag(refsTag)
|
||||
await cacheClient.deleteKey(refsTag, { fuzzy: true })
|
||||
keysToDelete.push(refsTag)
|
||||
|
||||
revalidateLogger.debug(`Revalidating refTag: ${refTag}`)
|
||||
revalidateTag(refTag)
|
||||
await cacheClient.deleteKey(refTag, { fuzzy: true })
|
||||
keysToDelete.push(refTag)
|
||||
|
||||
revalidateLogger.debug(`Revalidating tag: ${tag}`)
|
||||
revalidateTag(tag)
|
||||
await cacheClient.deleteKey(tag, { fuzzy: true })
|
||||
|
||||
keysToDelete.push(tag)
|
||||
revalidateLogger.debug(
|
||||
`Revalidating language switcher tag: ${languageSwitcherTag}`
|
||||
)
|
||||
revalidateTag(languageSwitcherTag)
|
||||
await cacheClient.deleteKey(languageSwitcherTag, { fuzzy: true })
|
||||
keysToDelete.push(languageSwitcherTag)
|
||||
|
||||
revalidateLogger.debug(`Revalidating metadataTag: ${metadataTag}`)
|
||||
revalidateTag(metadataTag)
|
||||
await cacheClient.deleteKey(metadataTag, { fuzzy: true })
|
||||
|
||||
keysToDelete.push(metadataTag)
|
||||
revalidateLogger.debug(`Revalidating contentEntryTag: ${contentEntryTag}`)
|
||||
revalidateTag(contentEntryTag)
|
||||
await cacheClient.deleteKey(contentEntryTag, { fuzzy: true })
|
||||
keysToDelete.push(contentEntryTag)
|
||||
|
||||
if (entry.url) {
|
||||
const resolveEntryTag = resolveEntryCacheKey(entryLocale, entry.url)
|
||||
revalidateLogger.debug(`Revalidating url: ${resolveEntryTag}`)
|
||||
|
||||
await cacheClient.deleteKey(resolveEntryTag, { fuzzy: true })
|
||||
keysToDelete.push(resolveEntryTag)
|
||||
}
|
||||
|
||||
if (entry.breadcrumbs) {
|
||||
@@ -153,11 +152,11 @@ export async function POST(request: NextRequest) {
|
||||
`Revalidating breadcrumbsRefsTag: ${breadcrumbsRefsTag}`
|
||||
)
|
||||
revalidateTag(breadcrumbsRefsTag)
|
||||
await cacheClient.deleteKey(breadcrumbsRefsTag, { fuzzy: true })
|
||||
keysToDelete.push(breadcrumbsRefsTag)
|
||||
|
||||
revalidateLogger.debug(`Revalidating breadcrumbsTag: ${breadcrumbsTag}`)
|
||||
revalidateTag(breadcrumbsTag)
|
||||
await cacheClient.deleteKey(breadcrumbsTag, { fuzzy: true })
|
||||
keysToDelete.push(breadcrumbsTag)
|
||||
}
|
||||
|
||||
if (entry.page_settings) {
|
||||
@@ -169,7 +168,7 @@ export async function POST(request: NextRequest) {
|
||||
|
||||
revalidateLogger.debug(`Revalidating pageSettingsTag: ${pageSettingsTag}`)
|
||||
revalidateTag(pageSettingsTag)
|
||||
await cacheClient.deleteKey(pageSettingsTag, { fuzzy: true })
|
||||
keysToDelete.push(pageSettingsTag)
|
||||
}
|
||||
|
||||
if (content_type.uid === "destination_city_page") {
|
||||
@@ -180,10 +179,12 @@ export async function POST(request: NextRequest) {
|
||||
"city_list_data",
|
||||
cityIdentifier
|
||||
)
|
||||
await cacheClient.deleteKey(cityPageTag, { fuzzy: true })
|
||||
keysToDelete.push(cityPageTag)
|
||||
}
|
||||
}
|
||||
|
||||
await cacheClient.deleteKeys(keysToDelete, { fuzzy: true })
|
||||
|
||||
return Response.json({ revalidated: true, now: Date.now() })
|
||||
} catch (error) {
|
||||
revalidateLogger.error("Failed to revalidate tag(s)", error)
|
||||
|
||||
Reference in New Issue
Block a user