我正在使用Node v6.2.2和Electron v1.2.5。在Electron中產生子進程
我有一個小的應用程序,我已經建立在Electron上,現在我需要fork
這個進程在另一個節點進程中運行一些長時間運行的任務,但它似乎不工作,當我在尋找在ChildProcess
對象我可以看到,在參數spawnargs [0]初始化電子可執行文件而不是節點,所以我所做的是我試圖用spawn
來代替,但它不工作,據我所知。
這裏是我使用spawn
過程(該文件./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");
};
這裏是代碼,我用我的worker.js
文件:
process.on("message", (data) => {
console.log(data);
console.log("pong");
});
最後這就是我如何消費它。
const {app} = require("electron");
const tester = require("./modules/tester");
app.on("ready",() => {
tester.start();
});
也許我做錯了,但我不這麼認爲,因爲當我使用nodejs它似乎工作得很好。
我已經嘗試了很多例子,但沒有一個似乎能夠工作,另一種可能性是我需要在Electron中做一些特殊的工作,但我不知道。
從技術上講,Main和Renderer已經有兩個進程。在主流程上運行太多了嗎? – Josh
@Josh是的,因爲我正在運行一個dns查找,我需要快速執行,但我有一個解決方案,但我做的是當我運行應用程序時我也開始一個新的外部的NodeJS實例,並通過IPC與NodeJS和Electron進行通信。 –