Merge branch 'fix/medusa-fetch-cache-multi-pod-2026-09-20'
Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01QMP7ULbxbsB5g1vELNAT3D
This commit is contained in:
commit
553b1c7a32
1 file changed
+16
-4
@@ -111,14 +111,26 @@ async function medusaFetch<T>(
|
|||||||
|
|
||||||
const publishableKey = process.env.MEDUSA_PUBLISHABLE_KEY;
|
const publishableKey = process.env.MEDUSA_PUBLISHABLE_KEY;
|
||||||
|
|
||||||
|
// Sin next.revalidate/tags a proposito (reportado por el usuario
|
||||||
|
// 2026-09-20: imagenes editadas a mano en Medusa no se reflejaban en
|
||||||
|
// el storefront, pero por CSV si). Causa real: frontend-deploy corre 2
|
||||||
|
// replicas sin cacheHandler compartido -- cada pod tenia su propio
|
||||||
|
// cache en memoria de este fetch (next.revalidate:60), y el POST de
|
||||||
|
// /api/revalidate (revalidateTag) del subscriber de Medusa solo le
|
||||||
|
// llegaba a UNO de los dos pods via el Service, dejando al otro
|
||||||
|
// sirviendo la respuesta vieja hasta que el TTL expirara solo. Una
|
||||||
|
// edicion puntual + revisar al toque tenia ~50% de chance de pegarle
|
||||||
|
// al pod stale; una importacion CSV (minutos de duracion) le daba
|
||||||
|
// tiempo de sobra al TTL para expirar en ambos pods, disimulando el
|
||||||
|
// mismo bug. Las paginas que consumen esto ya son force-dynamic /
|
||||||
|
// dinamicas por diseño (ver comentario en app/page.tsx y
|
||||||
|
// app/product/[slug]/page.tsx) -- este next.revalidate competia contra
|
||||||
|
// esa intencion en vez de cumplirla. Sin este bloque, Next 15 no
|
||||||
|
// cachea el fetch por default dentro de una ruta dinamica.
|
||||||
const response = await fetch(url, {
|
const response = await fetch(url, {
|
||||||
headers: publishableKey
|
headers: publishableKey
|
||||||
? { "x-publishable-api-key": publishableKey }
|
? { "x-publishable-api-key": publishableKey }
|
||||||
: undefined,
|
: undefined,
|
||||||
next: {
|
|
||||||
revalidate: 60,
|
|
||||||
tags: ["medusa-products"],
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
|
|||||||
Reference in new issue
Block a user