Introduce sleeps between key + path revalidation

This commit is contained in:
Sam Becker 2024-04-27 21:31:47 -05:00
parent 9efba6e937
commit 6b1bc96632
2 changed files with 7 additions and 4 deletions

View File

@ -50,7 +50,7 @@ export async function createPhotoAction(formData: FormData) {
await sqlInsertPhoto(photo); await sqlInsertPhoto(photo);
revalidateAllKeysAndPaths(); await revalidateAllKeysAndPaths();
redirect(PATH_ADMIN_PHOTOS); redirect(PATH_ADMIN_PHOTOS);
}); });
@ -62,7 +62,7 @@ export async function updatePhotoAction(formData: FormData) {
await sqlUpdatePhoto(photo); await sqlUpdatePhoto(photo);
revalidatePhoto(photo.id); await revalidatePhoto(photo.id);
redirect(PATH_ADMIN_PHOTOS); redirect(PATH_ADMIN_PHOTOS);
}); });

View File

@ -35,6 +35,7 @@ import {
pathForPhoto, pathForPhoto,
} from '@/site/paths'; } from '@/site/paths';
import { cache } from 'react'; import { cache } from 'react';
import sleep from '@/utility/sleep';
// Table key // Table key
const KEY_PHOTOS = 'photos'; const KEY_PHOTOS = 'photos';
@ -107,17 +108,19 @@ export const revalidateAdminPaths = () => {
PATHS_ADMIN.forEach(path => revalidatePath(path)); PATHS_ADMIN.forEach(path => revalidatePath(path));
}; };
export const revalidateAllKeysAndPaths = () => { export const revalidateAllKeysAndPaths = async () => {
revalidateAllKeys(); revalidateAllKeys();
await sleep(2000);
PATHS_TO_CACHE.forEach(path => revalidatePath(path, 'layout')); PATHS_TO_CACHE.forEach(path => revalidatePath(path, 'layout'));
}; };
export const revalidatePhoto = (photoId: string) => { export const revalidatePhoto = async (photoId: string) => {
// Tags // Tags
revalidateTag(photoId); revalidateTag(photoId);
revalidateTagsKey(); revalidateTagsKey();
revalidateCamerasKey(); revalidateCamerasKey();
revalidateFilmSimulationsKey(); revalidateFilmSimulationsKey();
await sleep(2000);
// Paths // Paths
revalidatePath(pathForPhoto(photoId), 'layout'); revalidatePath(pathForPhoto(photoId), 'layout');
revalidatePath(PATH_ROOT, 'layout'); revalidatePath(PATH_ROOT, 'layout');