NEWS
WASM-Binary Aufruf friert Javascript-Instanz ein
-
Hallo zusammen,
ich habe für meine PV/Batterie/Wallbox/Wärmepumpe Kombination bei dynamischen Stromtarifen ein Skript entwickelt, dass mir mithilfe eines Solver den kostenoptimalen Einsatz aller Komponenten plant. Dazu verwende ich einen Solver "GLPK.js", welcher selbst eine WASM-binary aufruft. Soweit so gut.
Nun führt allerdings der Aufruf des Solvers (und damit mittelbar der WASM-Binary) dazu, dass die Javascript Instanz einfriert. Sie zeigt sogar "Instanz ist deaktiviert" im Javascript Tab an, da vermutlich der Adapter keine Rückmeldung während der Laufzeit der WASM-binary erhält. Erst wenn die WASM-binary fertig gerechnet hat, geht es im Skript und mit der Instanz weiter. Teilweise kommt es aber dann auch vor, dass vermutlich bei Überschreitung einer gewissen Timeout-Schwelle, sich die Javascript-Instanz neustartet.
Einigermaßen Umgehen kann ich die negativen Effekte auf die anderen Skripte, indem ich dieses Skript in einer eigenen JS-Instanz ausführe, sodass nur dieses Skript betroffen ist. Optimal ist das allerdings nicht.
Nun zu den Fragen:
-
Kann man den Aufruf der Funktion, welche dann die WASM-binary aufruft, irgendwie geeignet mit Promises oÄ kapseln, so dass es hier nicht zu diesem einfrieren kommt?
Ich muss zugeben, ich komme aus einer synchronen Programmierwelt und nutze überall "await". Der Code ist also nicht so aufgebaut, dass er mit Callbacks etc. funktioniert. Aber was nicht ist, kann ja noch werden. -
Kann man an der Javascript-Instanz das Timeout hochsetzen, welches nach vermeintlicher Inaktivität/Non-Responsiveness der Instanz einen Neustart triggert? Wo findet man das genau?
Ich hoffe ihr könnte mir hier ein wenig helfen, wie ich das in den Griff bekomme...
Viele Grüße
SEB -