Generelt om parallelle flows og ParallelExecution

Jeg er ny bruker og er relativt fresh på programmering, men har fått med meg at de fleste flows kan/burde kjøres med ParallelExecution som keep_last for å unngå at flowen har potensiale til å sette i gang ukontrollerbart mange instanser.

Nylig drev jeg å troubleshootet en flow hvor problemet viste seg å være at flowen hele tiden stoppet og avbrøt seg selv nettopp på grunn av keep_last.

Dette var til info Rate limit node som tilsynelatende lager nye instanser når den skipper events.
Derfor har jeg nå lært av hvis man bruker Rate limit node med “skip event” så må man IKKE bruke keep_last.

 
Mine flows blir stadig mer kompliserte og jeg er sikker på at min mangel på forståelse for parallellisering kommer til å skape problemer for meg i fremtiden.

 
Hvilke potensielle situasjoner trenger en eller flere kommuniserende flows å kjøre i parallel, keep_new eller keep_last?

Er det noen generelle regler på dette med parallelle flows så man kan unngå problemer i fremtiden? På forhånd takk!

Hei!
parallell er default, og kan brukes til det meste.

keep_last er nødvendig i f.eks en flow hvor en wait node brukes, og man for eksempel ønsker at timeren restartes ved ny trigging. Eksempel er en custom motion flow.

Om den flowen hadde kjørt i parallell hadde lys slått seg av når timeren hadde tellt ferdig første gang den ble trigget.

keep_first kan brukes om man ønsker å bruke første trigger (likt som keep_last bare motsatt)

Håper dette hjalp noe. Gi gjerne beskjed om du ønsker flere eksempler :slight_smile:

2 Likes

Herlig! Bra eksempel.

Skjønner jeg det riktig at det opprettes en ny “flow instance” hver gang en Trigger mottar et event?

Hvis for eksempel en trigger mottar et event som fører til at flowen begynner å jobbe-- og mens flowen jobber så mottar triggeren et nytt event-- blir det da forsøkt opprettet en ny flow instance (i henhold til ParallelExecution)?

Yes det er riktig. Du kan bruke rate limit node for å begrense antall trigginger om du skal kontrollere noe som trigges ofte.

Det slipper man på den bevegelse flowen da sensoren sender ikke ny presence rapport før den har vært uten bevegelse i 30 sek (for fibaro motion sensor) eller 4 min (for Aeotec MS6). Om man f.eks skal styre noe og bruker en HAN meter som trigger (som sender event hvert 2,5 sek) kan en løsning være å bruke en rate limit node (så slipper man at flow executer hvert 2,5 sek)

Supert! Tusen takk, da åpnet det en helt ny verden for meg. :slight_smile:

1 Like