我正在使用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进行通信。 –