Invalidation du cache à granularité fine

Les invalidations de cache à granularité fine actives sont envoyées à partir du connecteur Push-to-Live. L'invalidation du cache à granularité fine permet de définir la portée de l'invalidation du cache pour des produits ou des catégories individuels afin de reconstruire uniquement le cache nécessaire. Cela permet de minimiser l'impact de l'exécution au moment de l'invalidation du cache. Vous pouvez créer un modèle personnalisé pour l'invalidation de produit et de catégorie. Cela signifie que vous pouvez définir l'invalidation du cache de produit et de catégorie souhaitée et l'endroit où envoyer cette invalidation personnalisée.

Structure de modèle personnalisé

Le format de modèle personnalisé se compose de deux parties, Names:{Variables} où :
  • Noms : généralement dictées par la spécification de cache
  • Variables : les variables de produit et de catégorie suivantes du processeur :
    • Variables produit
      Nom de variable Description
      supportedStoreId Obtenez la liste d'ID de magasin d'une catentry spécifique à partir de l'index de produit Elasticsearch.
      partNumber Obtenez la partNumber normalisée de l'article mis à jour spécifique.
      parentCategoryId Obtenez la liste de la catégorie parent à qui appartient le produit spécifique.
      skuCatentryId Obtenez la liste des catentries affichant la SKU des produits.
      productPartNumber Obtenez la partNumber normalisée de l'article mis à jour spécifique en fonction de son type :
      • produit = partNumber produit
      • sku = trouver son produit parent et renvoyer cette partNumber
      .
      catentryId Obtenez la catentry de l'article mis à jour spécifique.
      productId Obtenez la catentry de l'article mis à jour spécifique en fonction de son type :
      • produit = agit de la même manière que catentryId
      • sku = trouver son produit parent et renvoyer ce catentryId
    • Variables de catégorie
      Nom de variable Description
      supportedStoreId Obtenez la liste de l'ID de magasin d'un catgroup spécifique à partir de l'index de catégorie Elasticsearch.
      categoryId Obtenez l'ID catgroup d'une catégorie spécifique.
      childCategoryId Obtenez la liste des catégories enfant de la catégorie spécifiée.

Comment créer un modèle personnalisé ?

Voici un exemple de modèle personnalisé. La première partie de celui-ci est le Name et il peut être personnalisée avec n'importe quel texte. La seconde partie est la Variables qui doit suivre un certain nom.
Note: Vous pouvez envoyer plusieurs composants de modèle de base dans une seule invalidation.
storeId:partNumber:{supportedStoreId}:{partNumber}
Le modèle personnalisé susmentionné génère l'invalidation suivante :
storeId:partNumber:1:test_10001
Dans le cas de plusieurs storeID, l'invalidation est déclenchée de la manière suivante
storeId:partNumber:1:test_10001
storeId:partNumber:10501:test_10001

Comment créer un modèle personnalisé pour plusieurs invalidations ?

Vous pouvez émettre plusieurs modèles personnalisés dans une entrée en spécifiant les différents modèles personnalisés. Les différents modèles personnalisés sont ajoutés à l'aide d'une virgule pour séparer chaque modèle personnalisé dans une entrée.

Voici un exemple de modèle personnalisé d'invalidation multiple :
storeId:partNumber:{supportedStoreId}:{partNumber};categoryId:{parentCategoryId}
Le modèle personnalisé d'invalidation multiple susmentionné génère l'invalidation suivante :
storeId:partNumber:1:test_10001
categoryId:10001

Comment personnaliser l'invalidation du cache à granularité fine ?

Une fois que vous avez créé des modèles personnalisés pour l'invalidation des produits et des catégories, utilisez le format JSON suivant pour personnaliser l'invalidation du cache à granularité fine. Pour obtenir des instructions détaillées sur la personnalisation des processeurs et des connecteurs, voir Extension des connecteurs Ingest.
{
    "name": "push-to-live",
    "pipes": [
        {
            "name": "WorkspacePublishing",
            "properties": [
                {
                    "name": "properties.Product Invalidation Template",
                    "value": "storeId:partNumber:{supportedStoreId}:{partNumber}",
                    "scope": {
                        "name": "Workspace Publishing Invalidations.WorkspacePublishInvalidation",
                        "type": "PROCESSOR"
                    }
                },
                {
                    "name": "properties.Category Invalidation Template",
                    "value": "storeId:category:{supportedStoreId}:{categoryId}",
                    "scope": {
                        "name": "Workspace Publishing Invalidations.WorkspacePublishInvalidation",
                        "type": "PROCESSOR"
                    }
                },
                {
                    "name": "properties.Cache Name",
                    "value": "someCache",
                    "scope": {
                        "name": "Workspace Publishing Invalidations.WorkspacePublishInvalidation",
                        "type": "PROCESSOR"
                    }
                }
            ]
        }
    ]
}