Optimizacija tijekova rada u aplikaciji Shopify Flow

Pri izradi tijeka rada važno je osigurati njegovu maksimalnu učinkovitost. U ovom su dokumentu navedeni scenariji koji mogu uzrokovati ograničavanje tijekova rada ili iscrpljivanje ograničenja API-ja, kao i savjeti za rješavanje ili zaobilaženje tih problema.

Uobičajeni problemi s učinkovitošću

U ovom su odjeljku navedeni uobičajeni scenariji koji mogu uzrokovati probleme s učinkovitošću u tijekovima rada. Moguće je da se istovremeno pojavi više scenarija, što povećava vjerojatnost problema s učinkovitošću. Za pogreške povezane s konfiguracijom uređivača ili ograničenjima učestalosti upotrebe, upotrijebite vodič za rješavanje problema.

Visokofrekventni pokretači

Visokofrekventni pokretači su oni kod kojih se temeljni događaj često događa. Na primjer, pokretač Promijenjena je količina zaliha varijante proizvoda pokreće se pri svakoj promjeni zaliha u trgovini. Učestalost pokretača djeluje kao množitelj svih problema u tijeku rada. Na primjer, ako tijek rada dohvaća 100 proizvoda i pokreće se 1000 puta u minuti, on će dohvatiti 100 000 proizvoda u minuti. To može uzrokovati probleme s učinkovitošću.

Rješenje: Optimizirajte tijekove rada upotrebom manje podataka ili upotrijebite korake čekanja kako biste podijelili tijek rada.

Više tijekova rada koji upotrebljavaju isti pokretač

U aplikaciji Flow možete izraditi više od jednog tijeka rada koji upotrebljava isti pokretač. Ti će se tijekovi rada paralelno pokretati kada se dogodi događaj. To može biti problematično ako se pokreće previše tijekova rada s istim pokretačem iz sljedećih razloga:

  • Tijekovi rada mogu međusobno biti u sukobu.
  • Tijekovi rada pokušavaju istovremeno dohvatiti podatke i pozivati API-je, a ograničenja za Shopify API određuju broj zahtjeva koje vaša trgovina može istodobno obraditi.

Rješenje: Kombinirajte tijekove rada koji upotrebljavaju isti pokretač u jedan tijek rada. To vam ujedno omogućuje kontrolu nad vremenom izvršavanja svakog od njih kako ne bi bili u sukobu. Kombiniranje tijekova rada osobito je korisno ako ne dohvaćaju mnogo podataka ili su podaci koje dohvaćaju isti. Ako tijekovi rada dohvaćaju veliku količinu različitih podataka, njihovo razdvajanje moglo bi rezultirati boljom učinkovitošću.

Upotreba popisa ili pogrešnih podataka

Pri izradi tijeka rada možda ćete upotrijebiti popis objekata, poput proizvoda ili narudžbi. Ako upotrijebite popis objekata, Flow će dohvatiti sve objekte s popisa. To može biti problem ako popis sadrži mnogo podataka.

Drugi uobičajeni problem jest slučajni odabir pogrešnih podataka. Na primjer, za provjeru podataka o proizvodu u narudžbi, možda ste odabrali order / publication / products / tags umjesto order / line items / product / tags. Prvi je rezultat obično netočan jer dohvaća sve proizvode za publikaciju dok je namjera provjeriti proizvode u narudžbi. Odabir tako velikog popisa može uzrokovati probleme s učinkovitošću, a odabir pogrešnog popisa može rezultirati pogrešnim funkcioniranjem automatizacije.

Rješenje: Pažljivo odaberite podatke koji su vam potrebni i izbjegavajte upotrebu popisa kad to nije nužno. Testirajte svoje tijekove rada kako biste osigurali da funkcioniraju onako kako očekujete.

Metapolja

Dohvaćanje podataka o pojedinačnom metapolju ili metaobjektu ne bi trebalo uzrokovati probleme s učinkovitošću. Ipak, čest je problem odabir popisa metafields i ponavljanje kroz sva metapolja resursa. Ako polje value sadrži mnogo podataka, primjerice kad se upotrebljavaju HTML objekti, to može rezultirati obradom velikih količina podataka i potencijalno dovesti do problema s učinkovitošću.

Rješenje: Upotrijebite objekt metafield umjesto popisa metafields.

Pretjerana upotreba radnji za dohvaćanje podataka

Tijekovi rada koji upotrebljavaju radnju Dohvati podatke poput Dohvati podatke o narudžbi osmišljeni su za vraćanje najviše 100 objekata po tijeku rada iz radnji Dohvati podatke. Premašivanje tog broja može uzrokovati probleme s učinkovitošću.

Rješenje: Pokrećite tijek rada češće kako vaš upit ne bi trebao vratiti više od 100 rezultata. Ponovno upotrijebite istu radnju Dohvati podatke umjesto postavljanja opetovanih upita.

Nedostatak filtara upita u radnjama za dohvaćanje podataka

Radnje Dohvati podatke pozivaju Shopify API. Ako nema upita, API će vratiti sve resurse ili niti jedan. To može uzrokovati probleme s učinkovitošću, ali i dovesti do pogrešnih radnji u trgovini kada se vraćeni podaci naknadno upotrijebe u tijeku rada.

Rješenje: Uvijek uključite filtre upita u radnje Dohvati podatke.

Neispravni filtri upita u radnjama za dohvaćanje podataka

Upiti radnje Dohvati podatke podržavaju ograničen skup filtara upita, specifičnu sintaksu i određeni skup vrijednosti koje se mogu upotrebljavati u filtrima. Unos pogrešnog filtra, vrijednosti filtra ili sintakse može dovesti do zanemarivanja cijelog upita, što može uzrokovati probleme slične onima kad nema filtara upita.

Rješenje: U dokumentaciji koju pruža radnja u aplikaciji Flow pronađite popis dostupnih filtara upita. Uvijek testirajte filtre upita kako biste se uvjerili da vraćaju očekivane podatke. Možete upotrijebiti radnju Evidentiraj izlaz u aplikaciji Flow za pregled vraćenih podataka ili možete pozvati Shopify Admin API izravno putem API klijenta poput aplikacije Postman ili aplikacije GraphiQL.

Dodatna rješenja za uobičajene probleme s učinkovitošću

Upotreba koraka čekanja za odgodu dohvaćanja podataka

Koraci čekanja omogućuju pauziranje tijeka rada na određeno vrijeme, ali se mogu upotrijebiti i za optimizaciju tijekova rada. Svaki korak čekanja učinkovito dijeli izvršavanje tijeka rada u zasebne faze. Prilikom pokretanja tijeka rada automatski se dohvaćaju podaci potrebni do prvog koraka čekanja (a nakon koraka čekanja ponovno se dohvaćaju podaci za preostali dio tijeka rada).

Ako tijek rada upotrebljava visokofrekventni pokretač i dohvaća mnogo podataka, ali će samo povremeno poduzeti radnju, sve složene podatke ili logiku možete staviti iza para uvjeta i koraka čekanja. Na primjer:

  1. Pokretač: Promijenjena je količina zaliha varijante proizvoda.
  2. Uvjet: Provjeri nalazi li se proizvod u kolekciji.
  3. Ako je istinito, radnja: Čekaj 2 sekunde.
  4. Radnja: Pošalji e-poruku korisniku (s puno podataka).

U ovom se primjeru podaci potrebni za 4. korak traže tek nakon završetka koraka čekanja. Ako je uvjet obično neistinit, to znači da će se tijek rada pokretati brže i učinkovitije.

Što ne treba optimizirati

Upotreba istih podataka u više radnji

Kada upotrebljavate isto polje u više koraka, Flow analizira upotrebu tih polja i te podatke dohvaća samo jednom. To znači da podatke možete upotrebljavati koliko god puta želite bez brige o učinkovitosti.