Ich benutze Node v6.2.2 und Electron v1.2.5.Spawn ein Kind Prozess in Elektron
Ich habe eine kleine Anwendung, die ich oben auf Electron gebaut habe und jetzt muss ich fork
den Prozess, um einige lange laufende Aufgabe in einem anderen Knoten-Prozess zu laufen, aber es scheint nicht zu funktionieren, wenn ich schaue am ChildProcess
Objekt kann ich sehen, dass in der Argumentation Spawnargs [0] mit der ausführbaren Elektron anstelle von Knoten initialisiert wird, also was ich getan habe, habe ich versucht, spawn
stattdessen zu verwenden, aber es funktioniert nicht so weit, wie ich sagen kann. Hier
ist der Code, den ich zu spawn
bin mit dem Prozess (Leben in der Datei ./modules/tester.js
):
const {spawn} = require('child_process');
var child = spawn("node", ["worker.js"], { stdio: ['inherit', 'inherit', 'inherit', 'ipc'] });
const self = {};
self.start =() => {
console.log("start");
child.send("ping");
};
Und hier ist der Code Ich verwende für meine worker.js
Datei:
process.on("message", (data) => {
console.log(data);
console.log("pong");
});
Und schließlich ist das, wie ich es konsumiere.
const {app} = require("electron");
const tester = require("./modules/tester");
app.on("ready",() => {
tester.start();
});
Ich mache es falsch, aber ich glaube nicht, denn wenn ich NodeJS bin mit ihm ganz gut zu funktionieren scheint Vielleicht.
Ich habe viele Beispiele ausprobiert, aber keiner von ihnen scheint zu funktionieren, eine andere Möglichkeit ist, dass ich in Electron etwas Besonderes machen muss, damit es funktioniert, aber ich weiß es nicht.
Technisch gesehen haben Sie bereits zwei Prozesse mit dem Main und dem Renderer. Ist es zu viel für den Main-Prozess? – Josh
@Josh Ja, es ist, weil ich eine DNS-Lookup laufen und ich muss es schnell tun, habe ich eine Lösung an Ort und Stelle, was ich getan habe ist, wenn ich die Anwendung ausgeführt habe, ich fange auch ein neues an Instanz von NodeJS extern und NodeJS und Electron kommunizieren über IPC. –