Używam Node v6.2.2 i Electron v1.2.5.Spawn proces potomny w Electron
Mam małą aplikację, którą zbudowałem na wierzchu Electrona i teraz muszę wykonać fork
proces, aby uruchomić jakieś długo działające zadanie w innym procesie węzłowym, ale to nie działa, kiedy szukam na obiekcie ChildProcess
widzę, że w argumencie spawnargs [0] jest inicjowane za pomocą pliku wykonywalnego elektronu zamiast węzła, więc to, co zrobiłem, próbowałem użyć zamiast tego spawn
, ale nie działa tak daleko, jak to możliwe.
Oto kod używam do spawn
procesu (mieszka wewnątrz pliku ./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");
};
I Oto kod używam dla mojego worker.js
pliku:
process.on("message", (data) => {
console.log(data);
console.log("pong");
});
I w końcu tak go konsumuję.
Może robię to źle, ale nie sądzę, ponieważ kiedy używam nodejów, wydaje mi się, że działa dobrze.
Próbowałem wielu przykładów, ale żaden z nich nie działa, inną możliwością jest to, że muszę zrobić coś specjalnego w Electron, aby działał, ale nie wiem.
Technicznie masz już dwa procesy z głównym i rendererem. Czy to zbyt dużo, aby uruchomić proces główny? – Josh
@Josh Tak, ponieważ uruchamiam wyszukiwanie dns i muszę to zrobić szybko, mam rozwiązanie na miejscu, ale to, co zrobiłem, to gdy uruchamiam aplikację, również zaczynam nowy instancja NodeJS z zewnątrz i komunikacja NodeJS i Electron przez IPC. –