Optimizacija potekov dela v aplikaciji Shopify Flow
Ko ustvarjate potek dela, želite, da se izvaja čim bolj učinkovito. Ta dokument opisuje scenarije, zaradi katerih so lahko vaši poteki dela omejeni ali presežejo omejitve API-ja, ter nasvete, kako te težave odpraviti ali zanje poiskati rešitev.
Na tej strani
Pogoste težave z uspešnostjo
To poglavje opisuje pogoste scenarije, ki lahko povzročijo težave z uspešnostjo v vaših potekih dela. Možno je, da se hkrati pojavi več scenarijev, kar poveča verjetnost pojava težav z uspešnostjo. Za napake, povezane s konfiguracijo urejevalnika ali omejevanjem hitrosti, uporabite vodnik za odpravljanje težav.
Sprožilci z velikim obsegom
Sprožilci z velikim obsegom so tisti, pri katerih se osnovni dogodek pogosto zgodi. Na primer, sprožilec Količina zalog različice izdelka je spremenjena se izvede ob vsaki spremembi inventarja v trgovini. Obseg sprožilca deluje kot množitelj za vsako težavo v poteku dela. Če na primer potek dela pridobi 100 izdelkov in se izvede 1000-krat na minuto, bo pridobil 100.000 izdelkov na minuto. To lahko povzroči težave z uspešnostjo.
Rešitev: Optimizirajte poteke dela tako, da uporabite manj podatkov, ali pa uporabite korake čakanja za razdelitev poteka dela.
Več potekov dela uporablja isti sprožilec
V aplikaciji Flow lahko ustvarite več potekov dela, ki uporabljajo isti sprožilec. Ti poteki dela se bodo ob dogodku izvajali vzporedno. Če se preveč potekov dela izvaja z istim sprožilcem, lahko to povzroči težave iz naslednjih razlogov:
- Med poteki dela lahko pride do sporov.
- Poteki dela poskušajo hkrati pridobiti podatke in klicati API-je, trgovina pa je pri številu zahtev, ki jih lahko obdela hkrati, omejena z omejitvami za Shopify API.
Rešitev: Združite poteke dela, ki uporabljajo isti sprožilec, v en potek dela. To vam omogoča tudi nadzor nad tem, kdaj se posamezen potek izvede, da ne pride do sporov. Združevanje potekov dela je še posebej uporabno, če poteki dela ne pridobijo veliko podatkov ali pa so pridobljeni podatki enaki. Če poteki dela pridobijo veliko različnih podatkov, se lahko izkaže, da ohranjanje ločenih potekov dela prinaša boljšo uspešnost.
Uporaba seznamov ali napačnih podatkov
Pri ustvarjanju poteka dela lahko uporabite seznam objektov, kot so izdelki ali naročila. Če uporabite seznam objektov, bo Flow pridobil vse objekte na seznamu. To lahko predstavlja težavo, če seznam vsebuje veliko podatkov.
Še ena pogosta težava je nenamerna izbira napačnih podatkov. Za preverjanje podatkov o izdelku pri naročilu bi na primer lahko izbrali order / publication / products / tags namesto order / line items / product / tags. Prvi rezultat je običajno napačen, saj pridobi vse izdelke za objavo, medtem ko je bil namen preveriti izdelke pri naročilu. Izbira tako obsežnega seznama lahko povzroči težave z uspešnostjo, izbira napačnega seznama pa lahko privede do napačnega izvajanja avtomatizacije.
Rešitev: Previdno izberite podatke, ki jih potrebujete, in se izogibajte uporabi seznamov, če to ni nujno. Preizkusite poteke dela in se prepričajte, da delujejo po pričakovanjih.
Metapolja
Pridobivanje podatkov posameznega metapolja ali metaobjekta ne bi smelo povzročiti težav z uspešnostjo. Vendar pa se pogosto zgodi, da izberete seznam metafields in izvedete zanko čez vsa metapolja v viru. Če polje value vsebuje veliko podatkov, na primer pri uporabi objektov HTML, se lahko obdela velika količina podatkov, kar lahko povzroči težave z uspešnostjo.
Rešitev: Namesto seznama metafields uporabite objekt metafield.
Prekomerna uporaba dejanj za pridobivanje podatkov
Poteki dela, ki uporabljajo dejanje Pridobi podatke, kot je Pridobi podatke o naročilu, so zasnovani tako, da z dejanji Pridobi podatke vrnejo največ 100 objektov na potek dela. Če presežete 100 objektov, lahko pride do težav z uspešnostjo.
Rešitev: Potek dela izvajajte pogosteje, da vaši poizvedbi ne bo treba vrniti več kot 100 rezultatov. Raje znova uporabite isto dejanje Pridobi podatke, kot da ustvarjate ponavljajoče se poizvedbe.
Brez filtrov poizvedb v dejanjih Pridobi podatke
Dejanja Pridobi podatke kličejo Shopify API. Če poizvedba ni prisotna, bo API vrnil vse vire ali nobenega. To lahko povzroči težave z uspešnostjo, prav tako pa se lahko v trgovini izvedejo napačna dejanja, ko vrnjene podatke uporabite pozneje v poteku dela.
Rešitev: V dejanja Pridobi podatke vedno vključite filtre poizvedbe.
Napačni filtri poizvedbe v dejanjih Pridobi podatke
Poizvedbe Pridobi podatke podpirajo omejen nabor filtrov poizvedbe, specifično sintakso in specifičen nabor vrednosti, ki se lahko uporabljajo v filtrih. Zaradi vnosa napačnega filtra, vrednosti filtra ali sintakse je lahko celotna poizvedba prezrta, kar lahko povzroči podobne težave, kot če filter poizvedbe ni prisoten.
Rešitev: Za iskanje seznama razpoložljivih filtrov poizvedbe uporabite dokumentacijo, ki je na voljo ob dejanju v aplikaciji Flow. Vedno preizkusite filtre poizvedbe in se prepričajte, da vrnejo pričakovane podatke. Za pregled vrnjenih podatkov lahko v aplikaciji Flow uporabite dejanje za beleženje izhoda, ali pa pokličete Shopify Admin API neposredno prek odjemalca API, kot je Postman, ali prek aplikacije GraphiQL.
Dodatne rešitve za pogoste težave z uspešnostjo
Uporabite korake čakanja za zakasnitev pridobivanja podatkov
Koraki čakanja vam omogočajo, da potek dela začasno ustavite za določen čas, lahko pa jih uporabite tudi za optimizacijo potekov dela. Vsak korak čakanja dejansko razdeli izvajanje poteka dela na ločene faze. Ko se potek dela izvede, samodejno pridobi podatke, ki so potrebni do prvega koraka čakanja (po koraku čakanja pa znova pridobi podatke za preostali del poteka dela).
Če potek dela uporablja sprožilec z velikim obsegom in pridobi veliko podatkov, vendar dejanje izvede le občasno, lahko morebitne zapletene podatke ali logiko postavite za parom pogoja in koraka čakanja. Na primer:
- Sprožilec: Količina zalog različice izdelka je spremenjena.
- Pogoj: Preveri, ali je izdelek v zbirki.
- Če je res, Dejanje: Počakaj 2 sekundi.
- Dejanje: Pošlji e-pošto stranki (z veliko podatki).
V tem primeru se poizvedba za podatke, zahtevane za 4. korak, izvede šele po zaključku koraka čakanja. Če je pogoj običajno neresničen, to pomeni, da se bo potek dela izvajal hitreje in bolj učinkovito.
Česa ni treba optimizirati
Uporaba istih podatkov v več dejanjih
Ko isto polje uporabite v več korakih, aplikacija Flow analizira uporabo teh polj in te podatke pridobi samo enkrat. To pomeni, da lahko podatke uporabite tolikokrat, kot želite, ne da bi vas skrbela uspešnost.