Optimizarea fluxurilor de lucru Shopify Flow
Atunci când creați un flux de lucru, doriți să vă asigurați că se execută cât mai eficient posibil. Acest document prezintă scenarii care ar putea duce la limitarea fluxurilor de lucru sau la epuizarea limitelor API și sfaturi despre cum să rezolvați sau să găsiți soluții alternative pentru aceste probleme.
Pe această pagină
Probleme frecvente de performanță
Această secțiune prezintă scenarii frecvente care pot cauza probleme de performanță în fluxurile de lucru. Este posibil să existe mai multe scenarii în același timp, ceea ce ar crește probabilitatea de a observa probleme de performanță. Pentru erorile legate de configurarea editorului sau de limitarea ratei, utilizați ghidul de depanare.
Declanșatoare cu volum mare
Declanșatoarele cu volum mare sunt acelea în care evenimentul de bază are loc frecvent. De exemplu, declanșatorul Cantitatea din inventarul variantei de produs s-a modificat se execută pentru fiecare modificare de inventar dintr-un magazin. Volumul unui declanșator acționează ca un multiplicator pentru orice problemă din fluxul de lucru. De exemplu, dacă un flux de lucru preia 100 de produse și se execută de 1.000 de ori pe minut, atunci va prelua 100.000 de produse pe minut. Acest lucru poate cauza probleme de performanță.
Soluție: optimizați-vă fluxurile de lucru utilizând mai puține date sau utilizați pași de așteptare pentru a vă partiționa fluxul de lucru.
Multe fluxuri de lucru care utilizează același declanșator
În Flow, puteți crea mai multe fluxuri de lucru care utilizează același declanșator. Aceste fluxuri de lucru se vor executa în paralel unele cu altele atunci când are loc evenimentul. Acest lucru poate fi problematic dacă executați prea multe fluxuri de lucru care utilizează același declanșator, din următoarele motive:
- Fluxurile de lucru pot intra în conflict unele cu altele.
- Fluxurile de lucru încearcă să preia date și să apeleze API-uri în același timp, iar magazinul dvs. este limitat în ceea ce privește numărul de solicitări pe care le poate gestiona simultan de către limitele Shopify API.
Soluție: combinați fluxurile de lucru care utilizează același declanșator într-un singur flux de lucru. Acest lucru vă permite, de asemenea, să controlați când se execută fiecare, astfel încât să nu intre în conflict unul cu celălalt. Combinarea fluxurilor de lucru este utilă în special dacă fluxurile de lucru nu recuperează multe date sau dacă datele pe care le recuperează sunt aceleași. Dacă fluxurile de lucru recuperează multe date distincte, s-ar putea să constatați că menținerea lor separată are ca rezultat performanțe mai bune.
Utilizarea listelor sau a datelor greșite
Atunci când creați un flux de lucru, este posibil să utilizați o listă de obiecte, cum ar fi produse sau comenzi. Dacă utilizați o listă de obiecte, Flow va prelua toate obiectele din listă. Aceasta poate fi o problemă atunci când lista conține multe date.
O altă problemă frecventă este selectarea accidentală a datelor greșite. De exemplu, pentru a verifica datele produsului dintr-o comandă, este posibil să fi selectat comandă / publicație / produse / etichete în loc de comandă / rânduri / produs / etichete. Primul rezultat este, de obicei, incorect, deoarece preia toate produsele pentru o publicație, când intenția este de a verifica produsele din comandă. Alegerea unei liste atât de mari poate cauza probleme de performanță, iar alegerea listei greșite poate face ca automatizarea dvs. să facă lucrul greșit.
Soluție: selectați cu atenție datele de care aveți nevoie și evitați utilizarea listelor atunci când nu este necesar. Testați-vă fluxurile de lucru pentru a vă asigura că fac ceea ce vă așteptați.
Metacâmpuri
Preluarea datelor individuale de metacâmp sau metaobiect nu ar trebui să cauzeze probleme de performanță. Cu toate acestea, o problemă frecventă este alegerea listei metafields și parcurgerea în buclă a tuturor metacâmpurilor dintr-o resursă. Dacă un câmp value conține multe date, de exemplu, atunci când sunt utilizate obiecte HTML, acest lucru poate duce la procesarea unei cantități mari de date și poate cauza probleme de performanță.
Soluție: utilizați obiectul metafield în loc de metafields.
Utilizarea excesivă a acțiunilor Obținere date
Fluxurile de lucru care utilizează o acțiune Obținere date, cum ar fi Obținere date comandă, sunt concepute pentru a returna maximum 100 de obiecte pe flux de lucru din acțiunile Obținere date. Depășirea a 100 de obiecte poate cauza probleme de performanță.
Soluție: executați fluxul de lucru mai des, astfel încât interogarea dvs. să nu trebuiască să returneze mai mult de 100 de rezultate. Reutilizați aceeași acțiune Obținere date în loc să efectuați interogări repetate.
Lipsa filtrelor de interogare în acțiunile Obținere date
Acțiunile Obținere date apelează Shopify API. Dacă nu este prezentă nicio interogare, API-ul va returna fie toate resursele, fie niciuna. Acest lucru poate cauza probleme de performanță, dar poate duce și la luarea de măsuri greșite în magazinul dvs. atunci când utilizați datele returnate ulterior în fluxul de lucru.
Soluție: includeți întotdeauna filtre de interogare în acțiunile dvs. Obținere date.
Filtre de interogare incorecte în acțiunile Obținere date
Interogările Obținere date acceptă un set limitat de filtre de interogare, o sintaxă specifică și un set specific de valori care pot fi utilizate în filtre. Introducerea unui filtru, a unei valori de filtru sau a unei sintaxe greșite poate duce la ignorarea întregii interogări, ceea ce poate cauza probleme similare cu cele care apar atunci când nu este prezent niciun filtru de interogare.
Soluție: utilizați documentația furnizată de acțiunea din Flow pentru a găsi lista de filtre de interogare disponibile. Testați întotdeauna filtrele de interogare pentru a vă asigura că returnează datele așteptate. Puteți utiliza o acțiune Jurnalizare ieșire în Flow pentru a examina datele returnate sau puteți apela direct Shopify Admin API printr-un client API, cum ar fi Postman, sau prin aplicația GraphiQL.
Soluții suplimentare pentru probleme frecvente de performanță
Utilizarea pașilor de așteptare pentru a întârzia preluarea datelor
Pașii de așteptare vă permit să întrerupeți un flux de lucru pentru o perioadă de timp specificată, dar pașii de așteptare pot fi utilizați și pentru a vă optimiza fluxurile de lucru. Fiecare pas de așteptare împarte în mod eficient execuția fluxului de lucru în faze separate. Atunci când fluxul de lucru se execută, acesta preia automat datele necesare până la primul pas de așteptare (și preia din nou date după pasul de așteptare pentru restul fluxului de lucru).
Dacă un flux de lucru utilizează un declanșator cu volum mare și preia multe date, dar va întreprinde acțiuni doar ocazional, atunci puteți plasa orice date sau logică complexă după o pereche formată dintr-o condiție și un pas de așteptare. De exemplu:
- Declanșator: cantitatea din inventarul variantei de produs s-a modificat.
- Condiție: verificați dacă produsul se află într-o colecție.
- Dacă este adevărat, Acțiune: Așteptați 2 secunde.
- Acțiune: trimiteți un e-mail clientului (cu multe date).
În acest exemplu, datele necesare pentru pasul 4 sunt interogate numai după finalizarea pasului de așteptare. Dacă, de obicei, condiția este falsă, atunci acest lucru înseamnă că fluxul de lucru se va executa mai rapid și mai eficient.
Ce nu trebuie să optimizați
Utilizarea acelorași date în mai multe acțiuni
Atunci când utilizați același câmp în mai mulți pași, Flow analizează utilizarea acelor câmpuri și preia datele respective o singură dată. Acest lucru înseamnă că puteți utiliza datele de câte ori doriți, fără să vă faceți griji cu privire la performanță.