Cache voor componenten en GraphQL wissen clear-cache
Dit document bevat een uitgebreide handleiding voor het inschakelen en verifiëren van de functie voor het wissen van cache in AEM CIF.
Cache-functie wissen inschakelen in CIF-configuratie enable-clear-cache
De functie clear-cache wordt standaard uitgeschakeld in de CIF-configuratie. Om het toe te laten, moet u het volgende aan uw overeenkomstige projecten toevoegen:
-
Laat servlet
/bin/cif/invalidate-cachetoe die u helpt de duidelijk-geheime voorgeheugen API met hun overeenkomstige verzoeken teweegbrengen door decom.adobe.cq.cif.cacheinvalidation.internal.InvalidateCacheNotificationImpl.cfg.jsonconfiguratie in uw project toe te voegen zoals hier getoond .note note NOTE De configuratie moet slechts voor de auteursinstanties worden toegelaten. -
Laat de luisteraar toe om geheim voorgeheugen van elke instantie van AEM (te ontruimen publiceer en auteur) door de
com.adobe.cq.commerce.core.cacheinvalidation.internal.InvalidateCacheSupport.cfg.jsonconfiguratie in uw project toe te voegen zoals hier getoond .-
Configuratie moet zijn ingeschakeld voor zowel auteur- als publicatieinstanties.
-
De Dispatcher-cache inschakelen (optioneel): u kunt de cacheinstelling voor de dispatcher wissen inschakelen door de eigenschap
enableDispatcherCacheInvalidationin te stellen op true in de bovenstaande configuratie. Dit verstrekt functionaliteit om het geheime voorgeheugen van de verzender te ontruimen.note note NOTE Dit werkt alleen met publicatie-instanties. -
Zorg er ook voor dat u het overeenkomende patroon opgeeft dat bij het product, de categorie en de CMS-pagina past, en dat u deze aan het bovenstaande configuratiebestand toevoegt om het uit de verzendcache te verwijderen.
-
-
Als u de prestaties van SQL-query's wilt verbeteren om de bijbehorende pagina te zoeken die betrekking heeft op product en categorie, voegt u de corresponderende index toe aan uw project (aanbevolen). Voor meer informatie, zie cifCacheInvalidationSupport.
Cache-functie wissen verifiëren verify-clear-cache
Om te controleren of alles correct is ingesteld:
- Trigger overeenkomstige servlet aan de Instantie AEM van de Auteur, bijvoorbeeld http://localhost :4502/bin/cif/invalidate-cache en u zou een reactie van 200 HTTP moeten krijgen.
- Controleer of er een knooppunt is gemaakt onder het volgende pad in auteurinstanties:
/var/cif/cacheinvalidation. De knooppuntnaam volgt dit patroon:cmd_{{timestamp}}. - Verifieer dat de zelfde knoop in elke publicatieinstantie is gecreeerd.
Nu, om te controleren of de geheime voorgeheugens behoorlijk worden ontruimd:
-
Navigeer naar de corresponderende PLP- en PDP-pagina's.
-
Werk een product of categorienaam in de handels motor bij. De wijzigingen worden niet direct doorgevoerd in AEM op basis van cacheconfiguraties.
-
Trigger de servlet API zoals hier getoond:
code language-none curl --location '{Author AEM Instance Url}/bin/cif/invalidate-cache' \ --header 'Content-Type: application/json' \ --header 'Authorization: ******' \ // Mandatory --header 'Cookie: private_content_version=0299c5e4368a1577a6f454a61370317b' \ --data '{ "productSkus": ["Sku1", "Sku2"], // Optional: Pass the corresponding sku which got updated. "categoryUids":["CategoryUid"], // Optional : Pass the corresponding category-uid which got updated. "storePath": "/content/venia/us/en", // Mandatory : Needs to be given to know for which site we are removing the clear cache. }'
Als alles goed gaat, worden de nieuwe veranderingen in elk geval weerspiegeld. Als de wijzigingen niet zichtbaar zijn op het publicatieexemplaar, probeert u de relevante PLP- en PDP-pagina's te openen in een browservenster van het type private/incognito.
Cache-validatie-API wissen clear-cache-api
Dit is API die u moet teweegbrengen wanneer u geheim voorgeheugen van handel verwante gegevens van AEM wilde ontruimen.
Type aanvraag: POST
Kopteksten headers
Content-Typeapplication/jsonAuthorizationPayload payload
In de volgende tabel worden bestaande kenmerken weergegeven die de functie uit het vak geeft. Deze InvalidateType -eigenschappen moeten worden gegeven in combinatie met een verplicht kenmerk (zoals storePath ).
invalidateTypeproductSkusWis het geheime voorgeheugen van intern geheugen gebruikend het volgende patroon:"\"sku\":\\s*\""
Dispatcher
- Wis het PDP paginacache van overeenkomstige SKUs
- Cache van de overeenkomstige categoriepagina wissen waarin deze bestaat (gebaseerd op de grafische reactie van de handel)
- Cache wissen op basis van de volgende query:
SELECT content.[jcr:path] FROM [nt:unstructured] AS content<br>WHERE ISDESCENDANTNODE(content, '{storePath}')<br>AND ( (content.[product] IN ('sku1','sku2') AND content.[productType] = 'combinedSku')<br> OR (content.[selection] IN ('sku1','sku2') AND content.[selectionType] IN ('combinedSku', 'sku')))
categoryUidsWis het geheime voorgeheugen van intern geheugen gebruikend het volgende patroon:"\"uid\"\\s*:\\s*\\{\"id\"\\s*:\\s*\""
Dispatcher
- Cache van categoriepagina's wissen voor corresponderende gegevens (inclusief de pagina met onderliggende categorieën)
- Alle PDP-pagina's met de corresponderende categorieën wissen
- Cache wissen op basis van de volgende query:
SELECT content.[jcr:path] FROM [nt:unstructured] AS content<br>WHERE ISDESCENDANTNODE(content,'{storePath}')<br>AND ((content.[categoryId] in ('category1','category2')<br>AND content.[categoryIdType] in ('uid'))<br>OR (content.[category] in ('category1','category2') AND content.[categoryType] in ('uid')))
regexPatternscacheNamesinvalidateAllDeze lijst toont het verplichte bezit dat in elke API vraag moet worden overgegaan:
storePath/content/venia/us/en als referentie met een venia-project).invalidateType.Voorbeeld-API-aanvraag sample-request
curl --location 'https://author-p10603-e145552-cmstg.adobeaemcloud.com/bin/cif/invalidate-cache' \
--header 'Content-Type: application/json' \
--header 'Authorization: ******' \
--header 'Cookie: private_content_version=0299c5e4368a1577a6f454a61370317b' \
--data '{
"productSkus": ["VP01", "VT10"], // This will clear cache for the corresponding pages related with mentioned skus.
"categoryUids":["Mjk="], // This will clear cache for the corresponding pages related with mentioned categories.
"regexPatterns":["\"uid\"\\s*:\\s*\\{\"id\"\\s*:\\s*\"(Mjk=)\"", "\"sku\":\\s*\"(VP02|VP03)\""],
"cacheNames": ["venia/components/commerce/product"], // If this been added then it will clear respective caches for the corresponding storepath
"storePath": "/content/venia/us/en"
}'
Uitbreidbaarheid clear-cache-extensibility
Deze functie biedt niet alleen de kernfunctionaliteit, maar ook uitbreidbaarheid, zodat ontwikkelaars deze verder kunnen ontwikkelen en aanpassen als dat nodig is.
Het bestaande kenmerk uitbreiden existing-attribute
In gevallen waar het geheime voorgeheugen moet worden ontruimd die momenteel niet door de bestaande op attributen-gebaseerde functionaliteit (zoals categoryUids) worden behandeld, kunt u naar verwijzen dit verwijzingsdossier om nieuwe patronen toe te voegen en extra invalidatePaths te bepalen die van het geheime voorgeheugen voorbij wat de huidige implementatiehandvatten zouden moeten worden ontruimd.
Nieuw aangepast kenmerk toevoegen new-custom-attribute
Als, bijvoorbeeld, u niet de bestaande attributen voor het ontruimen van het geheime voorgeheugen wilt gebruiken, dan hebt u de flexibiliteit om uw eigen attribuut tot stand te brengen en zijn overeenkomstige functionaliteit te bepalen.
-
Als u slechts geheim voorgeheugen van het interne geheugen van AEM (de grafische reactie) moet ontruimen, dan moet u deze verwijzing volgen.
-
Als u geheim voorgeheugen van het interne geheugen en het verzenders geheime voorgeheugen moet ontruimen, dan moet u deze verwijzing volgen.
note note NOTE U kunt de interne lege cache negeren door nullvoor de methodegetPatterns()te retourneren.