Bakgrund
När ett kontrollblad har många rader eller processtiden är för lång kan parallella kedjor minska körtiden avsevärt.
Exempel på scenario
Tänk dig att du har en kommandogrupp i din kedja som använder en Group Iterator. I den här konfigurationen hämtas kontrollbladets innehåll från ett kalkylblad i Workiva med kommandot Get Sheet Data . Kedjan upprepar sedan en uppsättning åtgärder för varje rad i arket. (Se installationsanvisningarna här.)
Om exekveringsordningen för kontrollbladsraderna inte spelar någon roll, och varje rad kan bearbetas oberoende av varandra, kan du förbättra kedjans effektivitet genom att köra dem parallellt med hjälp av följande steg.
Obs: Stegen nedan är baserade på den exempelkedja som visas ovan. Justera efter behov för din egen kedja och eventuella extra kommandon som den kan ha.
Steg 1: Förbered din primära kedja
- Ta bort alla länkar mellan alla noder.
- Ta bort noderna CSV till JSON och Command Group .
- Lägg till ett Advanced Query -kommando från Tabular Transformations -anslutningen och anslut det till Get Sheet Data -noden.
- Konfigurera noden med följande värden:
- Tables > File: välj utmatningen Get Sheet Data > Data från variabelpanelen.
- Tabeller > Tabellnamn: använd ett namn utan mellanslag.
- Fråga: använd MySQL
NTILE-funktionen för att tilldela ett gruppnummer till varje rad (t.ex.NTILE(3)för tre grupper).
Obs: Du måste testa din process för att hitta det lämpliga antalet grupper som stämmer överens med önskad körtid. Som en bästa praxis bör antalet vara mindre än 10.
Steg 2: Ställ in din underkedja så att den körs parallellt
- I den underkedja som körs av din händelse Run Chain ska du antingen lägga till eller ändra kommandot Runtime Inputs . En påminnelse om detta måste vara den första noden i kedjan. Konfigurera två ingångar för den: en FileField -ingång för datafilen och en NumberField -ingång för gruppnumret.
- För att säkerställa att varje instans endast bearbetar sina tilldelade rader ska du ansluta kommandot Filter Rows omedelbart efter kommandot Runtime Inputs och före andra kommandon. Filtret isolerar poster efter gruppnummer, vilket säkerställer att alla efterföljande kommandon endast fungerar på rätt rader.
Obs: Fältet Search Columns är 0-baserat.
- I Chain Settings, se till att alternativet Allow concurrent runs är aktiverat.
Steg 3: Passera genom filen och gruppnumret
- I den primära kedjan lägger du till ett kommando Run Chain för varje gruppnummer som används i funktionen
NTILE(t.ex. 3 kommandon förNTILE(3)).- Datafil Runtime Input: välj Advanced Query > Result output från variabelpanelen.
- Gruppnummer Runtime Input: Ett unikt nummer från 1 upp till det totala antalet grupper.
Resultat
Din kedja bearbetar nu tre gånger så många rader från ditt kontrollblad på en gång. Du kan skala upp detta ytterligare genom att öka antalet NTILE och lägga till motsvarande Run Chain kommandon.
Varning
- Undvik att köra för många parallella kedjor samtidigt, eftersom det kan leda till att plattformens gränser överskrids och att kommandona misslyckas. Som bästa praxis bör antalet parallella kedjor vara mindre än 10.
- Alla kedjelösningar bör testas noggrant mot kantfall och alla relevanta datatyper innan de används i live- eller produktionsmiljöer.
- Kedjor med fler än sex nästlade nivåer av Run Chain användning kanske inte exporteras eller importeras korrekt.
Ytterligare resurser
För mer information om kedjekontrollblad, se några av våra andra resurser
- För mer grundläggande information, se vår Using Control Sheets.
- För ett populärt användningsfall av kontrollblad, se vår Control Sheet Scheduler Chain mall.