Optimisation de vos flux de travail
Lorsque vous créez un flux de travail, vous voulez vous assurer qu’il s’exécute aussi efficacement que possible. Ce document décrit les scénarios susceptibles de limiter votre flux de travail ou d’épuiser les limites des API et fournit des conseils pour résoudre ou contourner ces problèmes.
Sur cette page
Problèmes de performances courants
Cette section décrit les scénarios courants qui peuvent entraîner des problèmes de performances dans vos flux de travail. Il est possible d’avoir plusieurs scénarios en même temps, ce qui augmenterait la probabilité de constater des problèmes de performances. Pour les erreurs liées à la configuration de l’éditeur ou à la limitation du taux, utilisez le guide de résolution de problèmes.
Déclencheurs à volume élevé
Les déclencheurs à volume élevé sont ceux pour lesquels l’événement sous-jacent se produit fréquemment. Par exemple, le déclencheur Modification de la quantité en stock d’une variante de produit s’exécute à chaque variation de stock dans une boutique. Le volume d’un déclencheur est comparable à un multiplicateur sur un problème dans votre flux de travail. Par exemple, si un flux de travail récupère 100 produits et s’exécute 1000 fois par minute, il récupérera 100 000 produits par minute. Cela peut entraîner des problèmes de performances.
Solution : optimisez vos flux de travail en utilisant moins de données ou utilisez des étapes d’attente pour partitionner votre flux de travail comme décrit ci-dessous.
Plusieurs flux de travail utilisant le même déclencheur
Dans Flow, vous pouvez créer plusieurs flux de travail utilisant le même déclencheur. Ces flux de travail s’exécuteront en parallèle les uns avec les autres lorsque l’événement se produira. Cela peut être problématique si vous exécutez trop de flux de travail utilisant le même déclencheur pour les raisons suivantes :
- Les flux de travail peuvent entrer en conflit les uns avec les autres.
- Les flux de travail essaient de récupérer des données et d’appeler des API en même temps, et votre boutique est limitée en nombre de requêtes qu’elle peut traiter simultanément par les limites de l’API Shopify.
Solution : combiner les flux de travail qui utilisent le même déclencheur en un seul flux de travail. Cela vous permet également de contrôler quand chacun d’eux s’exécute, afin qu’ils n’entrent pas en conflit les uns avec les autres. Une combinaison de flux de travail est particulièrement utile si les flux de travail ne récupèrent pas une grande quantité de données ou si les données qu’ils récupèrent sont les mêmes. Si les flux de travail récupèrent une grande quantité de données distinctes, vous constaterez peut-être que les maintenir séparées permet d’obtenir de meilleures performances.
Utilisation de listes ou de données erronées
Lorsque vous créez un flux de travail, vous pouvez utiliser une liste d’objets, tels que des produits ou des commandes. Si vous utilisez une liste d’objets, Flow récupérera tous les objets de la liste. Cela peut constituer un problème lorsque la liste contient une grande quantité de données.
La sélection accidentelle de données incorrectes constitue un autre problème courant. Par exemple, pour vérifier les données produit sur une commande, vous avez peut-être sélectionné order / publication / products / tags
au lieu de order / line items / product / tags
. Le premier résultat est généralement incorrect, car il récupère tous les produits d’une publication, alors que l’intention est de vérifier les produits de la commande. Le choix d’une liste aussi longue peut provoquer des problèmes de performances et le choix d’une liste incorrecte peut entraîner une mauvaise décision de la part de votre automatisation.
Solution : sélectionnez soigneusement les données dont vous avez besoin et évitez d’utiliser des listes si vous n’en avez pas besoin. Testez vos flux de travail pour vous assurer qu’ils se comportent conformément à vos attentes.
Champs méta
La récupération de données individuelles de champs méta ou de métaobjets ne devrait pas entraîner de problèmes de performances. Cependant, le fait de choisir la liste metafields
et de parcourir tous les champs méta d’une ressource constitue un problème courant. Si un champ value
contient une grande quantité de données, par exemple lorsque des objets HTML sont utilisés, cela peut entraîner le traitement d’une grande quantité de données, susceptible de provoquer des problèmes de performances.
Solution : utilisez l’objet metafield
(docs) au lieu de metafields
.
Utilisation excessive des actions Obtenir les données
Les flux de travail qui font appel à une action Obtenir les données tels que Obtenir les données de commande sont conçus pour retourner un maximum de 100 objets par flux de travail à partir des actions Obtenir les données. Dépasser 100 objets peut entraîner des problèmes de performances.
Solution : exécutez le flux de travail plus souvent afin que votre requête ne doive pas retourner plus de 100 résultats. Réutilisez la même action Obtenir les données au lieu d’effectuer des requêtes répétées.
Aucun filtre de requête dans les actions Obtenir les données
Les actions Obtenir les données font appel à l’API Shopify. Si aucune requête n’est présente, l’API retournera toutes les ressources ou aucune. Cela peut entraîner des problèmes de performances, ainsi que des actions erronées dans votre boutique, si vous utilisez les données retournées ultérieurement dans le flux de travail.
Solution : incluez toujours des filtres de requête dans vos actions Obtenir les données.
Filtres de requête incorrects dans les actions Obtenir les données
Les requêtes Obtenir les données prennent en charge un ensemble limité de filtres de requête, une syntaxe spécifique et un ensemble spécifique de valeurs qui peuvent être utilisés dans les filtres. En cas de saisie d’un filtre, d’une valeur de filtre ou d’une syntaxe incorrects, l’ensemble de la requête risque d’être ignoré, ce qui peut entraîner des problèmes similaires à ceux rencontrés lorsqu’aucun filtre de requête n’est présent.
Solution : utilisez la documentation fournie par l’action dans Flow pour trouver la liste des filtres de requête disponibles. Testez toujours vos filtres de requête pour vous assurer qu’ils retournent les données attendues. Vous pouvez utiliser une action Sortie de journal dans Flow (pour consulter les données retournées) ou appeler directement Shopify Admin API (via un client API tel que Postman ou via l’application GraphiQL).
Solutions supplémentaires pour les problèmes de performances courants
Utiliser les étapes d’attente pour retarder la récupération des données
Les étapes d’attente vous permettent de suspendre un flux de travail pendant une durée spécifiée, mais les étapes d’attente peuvent également être utilisées pour optimiser vos flux de travail. Chaque étape d’attente fractionne efficacement l’exécution de votre flux de travail en blocs distincts. Lorsque le flux de travail s’exécute, il récupère automatiquement les données requises jusqu’à la première étape d’attente (et récupère à nouveau les données après l’étape d’attente pour le reste du flux de travail). Si un flux de travail utilise un déclencheur à volume élevé et récupère une grande quantité de données, mais n’agit qu’occasionnellement, vous pouvez placer une logique ou des données complexes après une paire condition et étape d’attente. Par exemple :
- Déclencheur : modification de la quantité en stock d’une variante de produit
- Condition : vérifier si le produit est dans une collection
- Si vrai, action : attendre 2 secondes
- Action : envoyer un e-mail au client (avec une grande quantité de données)
Dans cet exemple, les données requises pour l’étape 4 ne sont consultées qu’une fois l’étape d’attente terminée. Si la condition est généralement fausse, cela signifie que le flux de travail s’exécutera plus rapidement et plus efficacement.
Éléments à ne pas optimiser
Utilisation des mêmes données dans plusieurs actions
Lorsque vous utilisez le même champ dans plusieurs étapes, Flow analyse l’utilisation de ces champs et ne récupère ces données qu’une seule fois. Cela signifie que vous pouvez utiliser les données autant de fois que vous le souhaitez sans vous soucier des performances.