Optimaliseer je workflows

Wanneer je een workflow opzet, wil je ervoor zorgen dat deze zo efficiënt mogelijk verloopt. In dit document worden scenario's beschreven die ertoe kunnen leiden dat je workflows worden beperkt of dat API worden overschreden. Ook worden tips gegeven over hoe je deze problemen kunt oplossen.

Veelvoorkomende prestatieproblemen

In dit gedeelte worden veelvoorkomende scenario's beschreven die prestatieproblemen in je workflows kunnen veroorzaken. Het is mogelijk dat er meer dan één scenario tegelijk is, waardoor de kans groter is dat je prestatieproblemen tegenkomt. Voor fouten gerelateerd aan de editorconfiguratie of snelheidsbeperking, gebruik de probleemoplossing gids.

Hoog volume trigger

Triggers met een hoog volume zijn triggers waarbij de onderliggende gebeurtenis vaak plaatsvindt. Zo wordt bijvoorbeeld de trigger variant gewijzigd uitgevoerd bij elke voorraadwijziging in een winkel. Het volume van een trigger is een soort vermenigvuldiger voor elk probleem in je workflow. Als een workflow bijvoorbeeld 100 producten ophaalt en 1000 keer per minuut wordt uitgevoerd, dan worden er 100.000 producten per minuut opgehaald. Dit kan prestatieproblemen veroorzaken.

Oplossing: optimaliseer je workflows door minder gegevens te gebruiken of gebruik wachtstappen om je workflow te partitioneren zoals hieronder beschreven.

Veel workflows die dezelfde trigger gebruiken

In Flow kun je meer dan één workflow bouwen met dezelfde trigger. Deze workflows worden parallel aan elkaar uitgevoerd wanneer de gebeurtenis plaatsvindt. Dit kan problematisch zijn als je te veel workflows uitvoert met dezelfde trigger, om de volgende redenen:

  • De workflows kunnen met elkaar in conflict komen.
  • De workflows proberen tegelijkertijd gegevens op te halen en API's aan te roepen, en je shop is beperkt in het aantal verzoeken dat het tegelijk kan verwerken door Shopify API limieten.

Oplossing: workflows combineren die dezelfde trigger gebruiken in één workflow. Hiermee kun je ook bepalen wanneer ze worden uitgevoerd, zodat ze niet met elkaar in conflict komen. Combine van workflows is vooral handig als de workflows niet veel gegevens ophalen of als de gegevens die ze ophalen hetzelfde zijn. Als de workflows veel verschillende gegevens verzamelen, zul je merken dat het scheiden ervan betere prestaties oplevert.

Het gebruik van lijsten of de verkeerde gegevens

Wanneer je een workflow maakt, kun je een lijst met objecten gebruiken, zoals producten of bestellingen. Als je een lijst met objecten gebruikt, haalft Flow alle objecten in de lijst op. Dit kan een probleem zijn als de lijst veel gegevens bevat.

Een ander veel voorkomend probleem is het per ongeluk selecteren van de verkeerde gegevens. Om bijvoorbeeld product van een bestelling te controleren, heb je mogelijk order / publication / products / tags geselecteerd in plaats van order / line items / product / tags. Het eerste resultaat is meestal onjuist, omdat het alle producten voor een publicatie ophaalt terwijl het de bedoeling is om producten op de bestelling te controleren. Het kiezen van zo'n grote lijst kan prestatieproblemen veroorzaken en het kiezen van de verkeerde lijst kan ertoe leiden dat je automatisering het verkeerde doet.

Oplossing: selecteer zorgvuldig de gegevens die je nodig hebt en vermijd het gebruik van lijsten als dat niet nodig is. Test je workflows om er zeker van te zijn dat ze doen wat je verwacht.

Metavelden

Het ophalen van individuele metaveld- of metaobject zou geen prestatieproblemen mogen veroorzaken. Een veelvoorkomend probleem is echter het kiezen van de lijst metafields en het doorlopen van alle metavelden van een resource. Als een value -veld veel gegevens bevat, bijvoorbeeld wanneer HTML-objecten worden gebruikt, kan dit ertoe leiden dat er veel gegevens worden verwerkt, wat mogelijk prestatieproblemen veroorzaakt.

Oplossing: Gebruik het object metafield (docs) in plaats van metafields.

Overmatig gebruik van Gegevens ophalen-acties

Workflows die gebruikmaken van een actie Gegevens ophalen, zoals Ordergegevens ophalen, zijn ontworpen om maximaal 100 objecten per workflow te retourneren vanuit acties voor Gegevens ophalen. Als je meer dan 100 objecten gebruikt, kunnen er prestatieproblemen ontstaan.

Oplossing: voer de workflow vaker uit, zodat je query niet meer dan 100 resultaten hoeft op te leveren. Hergebruik dezelfde actie Gegevens ophalen als je herhaalde query's uitvoert.

Geen queryfilters in Gegevens ophalen-acties

Gegevens ophalenacties roepen de Shopify API aan. Als er geen query aanwezig is, retourneert de API alle bronnen of niks. Dit kan prestatieproblemen veroorzaken, maar het kan er ook voor zorgen dat de verkeerde acties worden ondernomen in je winkel, als je de teruggestuurde gegevens later in de workflow gebruikt.

Oplossing: neem altijd queryfilters op in je Gegevens ophalen-acties.

Onjuiste queryfilters in acties voor het ophalen van gegevens

Gegevensophaalquery's ondersteunen een beperkte set queryfilters, een specifieke syntaxis en een specifieke set waarden die in filters kunnen worden gebruikt. Het invoeren van de verkeerde filter, filterwaarde of syntaxis kan ervoor zorgen dat de hele query wordt genegeerd, wat problemen kan veroorzaken die vergelijkbaar zijn met wanneer er geen query filter aanwezig is.

Oplossing: gebruik de documentatie bij de actie in Flow om de lijst met beschikbare queryfilters te vinden. Test altijd je queryfilters om er zeker van te zijn dat ze de verwachte gegevens retourneren. Je kunt een Logboekuitvoeractie in Flow gebruiken (om de geretourneerde gegevens te bekijken) of je kunt de Shopify Admin API rechtstreeks aanroepen (via een API-client zoals Postman of via de app GraphiQL).

Aanvullende oplossingen voor veelvoorkomende prestatieproblemen

Gebruik Wachtstappen om het ophalen van gegevens uit te stellen

Met Wachtstappen kun je een workflow gedurende een bepaalde tijd pauzeren. Je kunt wachtstappen echter ook gebruiken om je workflows te optimaliseren. Elke wachtstap Split de uitvoering van je workflow effectief in afzonderlijke blokken. Wanneer de workflow wordt uitgevoerd, worden automatisch gegevens opgehaald die nodig zijn tot de eerste wachtstap (en worden na de wachtstap opnieuw gegevens opgehaald voor de rest van de workflow). Als een workflow een trigger met een hoog volume gebruikt en veel gegevens ophaalt, maar slechts af en toe actie onderneemt, dan kun je alle complexe gegevens of logica na een conditie- en wachtstappaar plaatsen. Bijvoorbeeld:

  1. Trigger: voorraadhoeveelheid productvariant gewijzigd
  2. Staat: controleer of het product in een collectie zit
  3. Indien waar, Actie: wacht 2 seconden
  4. Actie: stuur een e-mail naar de klant (met veel gegevens)

In dit voorbeeld worden de gegevens die nodig zijn voor stap 4 pas opgevraagd nadat de stap Wachten is voltooid. Als de status meestal onwaar is, betekent dit dat de workflow sneller en efficiënter verloopt.

Wat je niet moet optimaliseren

Dezelfde gegevens gebruiken in meerdere acties

Wanneer je hetzelfde veld in meerdere stappen gebruikt, analyseert Flow het gebruik van die velden en worden die gegevens slechts één keer Fetch . Dit betekent dat je de gegevens zo vaak kun gebruiken als je wilt, zonder dat je je zorgen hoeft te maken over de prestaties.

Zat het antwoord dat je zocht er niet bij? Wij helpen je graag verder.