NEWS
CPU Berechnungs-Reihenfolge von Trigger Logiken
-
Hallo zusammen und frohe Weihnachten.
Wer kann mir erklären wie die IOBRoker CPU Berechnungs-Reihenfolge von Trigger Logiken funktioniert?
Frage 1:
Zwei Trigger Logiken mit zwei unterschiedlichen Triggern.
Beide Trigger werden nacheinander aktiv. Werden dann die Trigger Logiken parallel in unterschiedlichen Cores abgearbeitet oder wird erst eine Trigger Logik beendet, bevor die andere Logik startet?Frage 2:
Eine Trigger Logik mit zwei Triggern. Beide Trigger werden nacheinander aktiv. Dann wird die Trigger Logik einmal für Trigger A ausgeführt und anschließend für Trigger B, oder?Frage 3:
Wenn zwei Varibalen in einer Trigger Logik zwingend hintereinander gesetzt werden sollten, um später woanders verwendet zu werden. Ist es theoretisch möglich, das direkt nach dem Setzen der ersten Variable eine andere Trigger Logik die erste Trigger Logik unterbricht und die Variablen nutzt ohne das die zweite Varibale gestetzt wurde?Beste Grüße
Benjamin -
Hallo zusammen und frohe Weihnachten.
Wer kann mir erklären wie die IOBRoker CPU Berechnungs-Reihenfolge von Trigger Logiken funktioniert?
Frage 1:
Zwei Trigger Logiken mit zwei unterschiedlichen Triggern.
Beide Trigger werden nacheinander aktiv. Werden dann die Trigger Logiken parallel in unterschiedlichen Cores abgearbeitet oder wird erst eine Trigger Logik beendet, bevor die andere Logik startet?Frage 2:
Eine Trigger Logik mit zwei Triggern. Beide Trigger werden nacheinander aktiv. Dann wird die Trigger Logik einmal für Trigger A ausgeführt und anschließend für Trigger B, oder?Frage 3:
Wenn zwei Varibalen in einer Trigger Logik zwingend hintereinander gesetzt werden sollten, um später woanders verwendet zu werden. Ist es theoretisch möglich, das direkt nach dem Setzen der ersten Variable eine andere Trigger Logik die erste Trigger Logik unterbricht und die Variablen nutzt ohne das die zweite Varibale gestetzt wurde?Beste Grüße
BenjaminJavaScript und Node sind nur single threaded.
Der JavaScript Adapter ist nur ein einziger Prozess.
D.h. Innerhalb eines Prozesses kann zur gleichen Zeit exakt nur eine Anweisung ausgeführt werden.
Jeder Aufruf einer Funktion, arrow function, event erzeugt einen Eintrag im call stack der dann der Reihe nach vom Event Loop abgearbeitet wird. Dazwischen kommen noch ein paar Management Aufgaben wie bspw garbage collection.Aufgrund der kleinteiligen Unterteilung in diesem Schema kann man jetzt nicht exakt sagen erst wenn trigger 1 fertig ist wird trigger 2 abgearbeitet. Das kann durchaus verschachtelt passieren. Gestartet werden sie aber schon der Reihe nach.
Je nach abarbeitungsdauer kann das Ende aber auch unterschiedlich sein.Wenn man will kann man mit Node auch Multi threaded programmieren. Dazu muss man allerdings selbst die neuen threads erzeugen und muss auch das ganze Management (evtl. Sync der threads miteinander, warten auf abhängige Abarbeitung, etc.) unter dem variablenraum worker_threads gibt es die entsprechenden Funktionen. Mit exec kann man einen eigenen Node Prozess starten das hat dann entsprechend mehr overhead.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Execution_model