Ich verwende Node v6.2.2 und Electron v1.2.5.
Ich habe eine kleine Anwendung, die ich oben auf Electron gebaut habe und jetzt muss ich fork
den Prozess ausführen, um eine lange laufende Aufgabe in einem anderen Knotenprozess auszuführen, aber es scheint nicht zu funktionieren, wenn ich es bin Beim Betrachten des ChildProcess
-Objekts kann ich sehen, dass in dem Argument spawnargs [0] mit dem ausführbaren Elektron anstelle des Knotens initialisiert wird. Also habe ich versucht, stattdessen spawn
zu verwenden, aber es funktioniert nicht so weit wie ich kann es sagen.
Hier ist der Code, den ich für spawn
des Prozesses verwende ( lebt in der Datei ./modules/tester.js
):
Und hier ist der Code, den ich für meine worker.js
-Datei verwende:
Und schließlich ist das, wie ich es konsumiere.
%Vor%Vielleicht mache ich es falsch, aber ich denke nicht, denn wenn ich nodejs benutze, scheint es gut zu funktionieren.
Ich habe viele Beispiele ausprobiert, aber keine davon scheint zu funktionieren, eine andere Möglichkeit ist, dass ich in Electron etwas Besonderes machen muss, damit es funktioniert, aber ich weiß es nicht.
Endlich habe ich es gelöst.
Die Art und Weise, wie ich das gelöst habe, ist genau umgekehrt, NodeJS ist auf den Produktionsmaschinen verfügbar, also habe ich einfach ein start.js
-Skript geschrieben, das im Grunde einen Kind-Prozess zum Ausführen von Electron erzeugt und im Eltern-Prozess läuft ich so lange laufende Aufgabe und schließlich benutze ich IPC, um zwischen den zwei Prozessen zu kommunizieren.
Wenn Sie Electron mit dem --asar
-Flag kompilieren, basierend auf den Dokumenten das wäre ein Problem.
Es gibt auch dieses Problem , bei dem Sie das stdio nicht an das übergeordnete Element anhängen können. Wenn Sie also davon ausgehen, dass ein distanziertes stdio kein Deal-Breaker ist, können Sie { stdio: 'ignore' }
ausprobieren.
Tags und Links electron