Optimització dels teus fluxos de treball de Shopify Flow
Quan crees un flux de treball, vols tenir la seguretat que s'executarà amb la màxima eficiència. Aquest document descriu situacions que podrien fer que els teus fluxos de treball quedin alentits intencionadament o esgotin els límits de l'API, a més d'incloure consells per resoldre aquests problemes o aplicar-hi una solució alternativa.
En aquesta pàgina
Problemes de rendiment comuns
Aquesta secció descriu els casos habituals que poden causar problemes de rendiment als teus fluxos de treball. És possible que es produeixi més d'un cas alhora, cosa que augmentaria la probabilitat que observis problemes de rendiment. Per a errors relacionats amb la configuració de l'editor o els límits de freqüència, utilitza la guia de resolució de problemes.
Esdeveniments desencadenants d'alt volum
Els esdeveniments desencadenants d'alt volum són aquells en què l'esdeveniment subjacent es produeix amb freqüència. Per exemple, l'esdeveniment desencadenant S'ha canviat la quantitat en estoc de la variant del producte s'executa amb cada canvi d'estoc d'una botiga. El volum d'un esdeveniment desencadenant actua com un multiplicador en qualsevol problema del flux de treball. Per exemple, si un flux de treball recupera 100 productes i s'executa 1.000 vegades per minut, recuperarà 100.000 productes per minut. Això pot causar problemes de rendiment.
Solució: optimitza els fluxos de treball utilitzant menys dades o fes servir passos d'espera per dividir el flux de treball.
Molts fluxos de treball utilitzen el mateix esdeveniment desencadenant
A Flow, pots crear més d'un flux de treball utilitzant el mateix esdeveniment desencadenant. Aquests fluxos de treball s'executaran en paral·lel quan es produeixi l'esdeveniment. Això pot ser problemàtic si executes massa fluxos de treball amb el mateix esdeveniment desencadenant per les raons següents:
- Els fluxos de treball poden entrar en conflicte entre ells.
- Els fluxos de treball intenten recuperar dades i fer crides a les API al mateix temps, i la teva botiga té un límit quant al nombre de sol·licituds que pot gestionar alhora establert pels límits de l'API de Shopify.
Solució: combina els fluxos de treball que utilitzen el mateix esdeveniment desencadenant en un de sol. Això també et permet controlar quan s'executa cadascun perquè no entrin en conflicte entre ells. Combinar fluxos de treball és especialment útil si no recuperen gaires dades o si les que recuperen són les mateixes. Si els fluxos de treball recuperen moltes dades diferents, pot ser que mantenir-los separats ofereixi un millor rendiment.
Ús de llistes o dades incorrectes
En crear un flux de treball, pots utilitzar una llista d'objectes, com ara productes o comandes. Si utilitzes una llista d'objectes, Flow recuperarà tots els objectes de la llista. Això pot suposar un problema quan la llista conté moltes dades.
Un altre problema freqüent és seleccionar accidentalment les dades incorrectes. Per exemple, per comprovar les dades del producte d'una comanda, potser has seleccionat order / publication / products / tags en lloc d'order / line items / product / tags. El primer resultat sol ser incorrecte, ja que recupera tots els productes d'una publicació quan la intenció és comprovar els productes de la comanda. Triar una llista tan gran pot provocar problemes de rendiment, i triar la llista incorrecta pot fer que l'automatització no funcioni com caldria.
Solució: selecciona amb cura les dades que necessitis i evita fer servir llistes si no cal. Prova els fluxos de treball per assegurar-te que funcionen com esperes.
Metacamps
La recuperació de dades individuals de metacamps o metaobjectes no hauria de causar problemes de rendiment. Tanmateix, un problema freqüent és triar la llista metafields i crear un bucle amb tots els metacamps d'un recurs. Si un camp value conté moltes dades, com ara quan s'utilitzen objectes HTML, pot ser que es processin moltes dades i que hi hagi problemes de rendiment.
Solució: utilitza l'objecte metafield en comptes de metafields.
Ús excessiu de les accions Obtenir dades
Els fluxos de treball que utilitzen una acció Obtenir dades, com ara Obtenir dades de la comanda, estan dissenyats per retornar un màxim de 100 objectes per flux de treball des de les accions Obtenir dades. Superar els 100 objectes pot causar problemes de rendiment.
Solució: executa el flux de treball amb més freqüència perquè la teva consulta no hagi de retornar més de 100 resultats. Reutilitza la mateixa acció Obtenir dades en lloc de fer consultes repetides.
Absència de filtres de consulta en les accions Obtenir dades
Les accions Obtenir dades criden a l'API de Shopify. Si no hi ha cap consulta, l'API retornarà tots els recursos o bé cap d'ells. Això pot causar problemes de rendiment, però també pot provocar que s'apliquin accions incorrectes a la teva botiga en utilitzar les dades retornades més endavant al flux de treball.
Solució: inclou sempre filtres de consulta a les teves accions Obtenir dades.
Filtres de consulta incorrectes a les accions Obtenir dades
Les consultes d'Obtenir dades admeten un conjunt limitat de filtres de consulta, una sintaxi específica i un grup concret de valors que es poden utilitzar als filtres. Introduir el filtre, el valor del filtre o la sintaxi incorrectes pot fer que s'ignori tota la consulta, cosa que pot causar problemes similars a quan no hi ha cap filtre de consulta.
Solució: utilitza la documentació que s'ofereix a l'acció a Flow per trobar la llista de filtres de consulta disponibles. Prova sempre els teus filtres de consulta per assegurar-te que retornen les dades esperades. Pots utilitzar una acció Log Output a Flow per revisar les dades retornades o bé pots cridar a l'API Shopify Admin de manera directa mitjançant un client de l'API com ara Postman o a través de l'aplicació GraphiQL.
Solucions addicionals per a problemes de rendiment comuns
Ús de passos d'Espera per retardar la recuperació de dades
Els passos d'espera et permeten aturar un flux de treball durant un temps determinat, però també es poden utilitzar per optimitzar-lo. Cada pas d'espera divideix efectivament l'execució del flux de treball en diverses fases independents. Quan s'executa el flux de treball, recupera de manera automàtica les dades necessàries fins al primer pas d'espera (i les torna a recuperar després d'aquest pas per a la resta del flux de treball).
Si un flux de treball fa servir un esdeveniment desencadenant d'alt volum i recupera moltes dades, però només entra en acció puntualment, pots posar dades complexes o lògica després d'una condició i un pas d'espera vinculats. Per exemple:
- Esdeveniment desencadenant: s'ha canviat la quantitat en estoc de la variant del producte.
- Condició: comprovar si el producte es troba a una col·lecció.
- Si és cert, Acció: esperar 2 segons.
- Acció: enviar un correu electrònic al client (amb moltes dades).
En aquest exemple, les dades necessàries per al pas 4 només es consulten un cop es completa el pas d'espera. Si la condició acostuma a ser falsa, això vol dir que el flux de treball s'executarà de manera més ràpida i eficient.
Què no s'ha d'optimitzar
Ús de les mateixes dades en múltiples accions
Quan fas servir el mateix camp en diversos passos, Flow analitza l'ús d'aquests camps i només en recupera les dades una vegada. Això vol dir que pots utilitzar les dades les vegades que vulguis sense preocupar-te pel rendiment.