Oma Shopify Flow töövoogude optimeerimine

Töövoogu ehitades soovid veenduda, et see töötaks võimalikult tõhusalt. Selles dokumendis on kirjeldatud stsenaariume, mis võivad põhjustada sinu töövoogude piiramist või API limiitide ammendumist, ning nõuandeid nende probleemide lahendamise või ajutise lahenduse leidmise kohta.

Levinud jõudlusprobleemid

Selles jaotises kirjeldatakse levinud stsenaariume, mis võivad põhjustada töövoogudes jõudlusprobleeme. Võimalik on mitme stsenaariumi samaaegne esinemine, mis suurendab jõudlusprobleemide tekkimise tõenäosust. Redaktori seadistuse või päringupiirangutega seotud vigade korral kasuta tõrkeotsingu juhendit.

Suure mahuga käivitajad

Suure mahuga käivitajad on need, mille alussündmus toimub sageli. Näiteks käivitaja Tootevariandi laokogus muutus käivitub poes iga laoseisu muutuse korral. Käivitaja maht toimib sinu töövoo mis tahes probleemi kordistina. Näiteks kui töövoog hangib 100 toodet ja see käivitub 1000 korda minutis, hangib see 100 000 toodet minutis. See võib põhjustada jõudlusprobleeme.

Lahendus. Optimeeri oma töövooge, kasutades vähem andmeid, või kasuta töövoo jaotamiseks ootamissamme.

Sama käivitajat kasutab mitu töövoogu

Rakenduses Flow saad ehitada mitu sama käivitajaga töövoogu. Sündmuse toimumisel käivituvad need töövood üksteisega paralleelselt. See võib põhjustada probleeme, kui käivitad sama käivitajaga liiga palju töövooge, ja seda järgmistel põhjustel:

  • Töövood võivad üksteisega vastuollu minna.
  • Töövood proovivad korraga andmeid hankida ja API-sid välja kutsuda, kuid sinu poodi piiravad Shopify API piirangud, mis määravad, mitut taotlust see korraga käsitleda suudab.

Lahendus. Kombineeri sama käivitajat kasutavad töövood üheks töövooks. See võimaldab sul kontrollida ka seda, millal igaüks neist täidetakse, et need üksteisega vastuollu ei läheks. Töövoogude kombineerimine on eriti kasulik, kui töövood ei hangi palju andmeid või kui hangitavad andmed on samad. Kui töövood hangivad palju erinevaid andmeid, võib nende lahus hoidmine tagada parema jõudluse.

Loendite või valede andmete kasutamine

Töövoogu ehitades võid kasutada objektide loendit, näiteks tooteid või tellimusi. Kui kasutad objektide loendit, hangib Flow kõik loendis olevad objektid. See võib olla probleem, kui loend sisaldab palju andmeid.

Teine levinud probleem on kogemata valede andmete valimine. Näiteks tellimuse tooteandmete kontrollimiseks võisid valida order / line items / product / tags asemel order / publication / products / tags. Esimene tulemus on tavaliselt vale, kuna see hangib avaldamise jaoks kõik tooted, kui eesmärk on kontrollida tellimusel olevaid tooteid. Nii suure loendi valimine võib põhjustada jõudlusprobleeme ja vale loendi valimise tõttu ei pruugi automatiseerimine soovitud viisil toimida.

Lahendus. Vali vajalikud andmed hoolikalt ja väldi loendite kasutamist, kui see pole vajalik. Testi oma töövooge veendumaks, et need töötavad ootuspäraselt.

Metaväljad

Üksiku metavälja või metaobjekti andmete hankimine ei tohiks jõudlusprobleeme põhjustada. Küll aga on levinud probleemiks loendi metafields valimine ja kõikide ressursi metaväljade läbimine. Kui väli value sisaldab palju andmeid (näiteks HTML-objektide kasutamisel), võib see kaasa tuua suure hulga andmete töötlemise, mis potentsiaalselt põhjustab jõudlusprobleeme.

Lahendus. Kasuta loendi metafields asemel objekti metafield.

Toimingute Hangi andmed liigkasutamine

Töövood, mis kasutavad toimingut Hangi andmed (nt Hangi tellimuse andmed), on loodud tagastama toimingutest Hangi andmed töövoo kohta maksimaalselt 100 objekti. Kui objekte on üle 100, võib see põhjustada jõudlusprobleeme.

Lahendus. Käivita töövoogu sagedamini, et sinu päring ei peaks tagastama üle 100 tulemuse. Korduvate päringute tegemise asemel kasuta uuesti sama toimingut Hangi andmed.

Toimingutes Hangi andmed puuduvad päringufiltrid

Toimingud Hangi andmed kutsuvad välja Shopify API. Kui päringut pole, tagastab API kas kõik ressursid või mitte ühtegi. See võib põhjustada jõudlusprobleeme, aga ka valesid toiminguid sinu poes, kui kasutad tagastatud andmeid hiljem töövoos.

Lahendus. Lisa oma toimingutele Hangi andmed alati päringufiltrid.

Valed päringufiltrid toimingutes Hangi andmed

Päringud Hangi andmed toetavad piiratud hulka päringufiltreid, spetsiifilist süntaksit ja teatud väärtuste kogumit, mida saab filtrites kasutada. Vale filtri, filtri väärtuse või süntaksi sisestamine võib kaasa tuua kogu päringu eiramise, mis võib põhjustada sarnaseid probleeme nagu siis, kui päringufilter puudub.

Lahendus. Kasuta Flow's toimingu juurde kuuluvat dokumentatsiooni, et leida saadaolevate päringufiltrite loend. Testi alati oma päringufiltreid, veendumaks, et need tagastavad oodatud andmed. Tagastatud andmete ülevaatamiseks võid Flow's kasutada toimingut Logi väljund või kutsuda API-kliendi (nt Postman) või rakenduse GraphiQL kaudu otse välja lahenduse Shopify Admin API.

Levinud jõudlusprobleemide lisalahendused

Kasuta andmete hankimise edasilükkamiseks samme Oota

Ootamissammud võimaldavad töövoo määratud ajaks peatada, kuid ootamissamme saab kasutada ka töövoogude optimeerimiseks. Iga ootamissamm jagab sinu töövoo täitmise sisuliselt eraldi faasideks. Töövoo käivitumisel hangib see automaatselt andmed, mida on vaja esimese ootamissammuni (ja hangib pärast ootamissamme uuesti andmed ülejäänud töövoo jaoks).

Kui töövoog kasutab suure mahuga käivitajat ja hangib palju andmeid, kuid teeb toiminguid vaid aeg-ajalt, saad panna keerukamad andmed või loogika tingimuse ja ootamissammu paari järele. Näide:

  1. Käivitaja: tootevariandi laokogus muutus.
  2. Tingimus: kontrolli, kas toode on kollektsioonis.
  3. Kui tõene, siis toiming: oota 2 sekundit.
  4. Toiming: saada kliendile e-kiri (koos hulga andmetega).

Selles näites päritakse 4. sammu jaoks vajalikud andmed alles pärast sammu Oota lõppu. Kui tingimus on tavaliselt väär, tähendab see, et töövoog töötab kiiremini ja tõhusamalt.

Mida mitte optimeerida

Samade andmete kasutamine mitmes toimingus

Kui kasutad sama välja mitmes sammus, analüüsib Flow nende väljade kasutust ja hangib need andmed ainult ühe korra. See tähendab, et võid andmeid kasutada nii mitu korda, kui soovid, ilma et peaksid muretsema jõudluse pärast.