如何解决他被杀死后如何重新连接到子进程?
我有一个处理三个电子事件的nodejs子进程,我需要在第二个进程之后完成它,所以我运行child.kill,在child.kill之后,我无法再次调用该进程..以下消息出现:错误[ERR_IPC_CHANNEL_CLOSED]:频道已关闭。
有什么办法可以杀死该进程以避免过多的内存使用,而是能够通过电子事件再次调用?
这是我的代码:
import { ipcMain } from 'electron'
import { fork } from 'child_process'
const child = fork('./child.js');
ipcMain.on('process',(event,arg) => {
child.send({
hello
})
child.on('message',(msg) => {
event.reply('process-reply',msg);
});
})`
ipcMain.on('process-2',arg) => {
child.send({
hello2
})
child.on('message',(msg) => {
event.reply('process2-reply',msg);
});
})
ipcMain.on('cancel-process',arg) => {
child.kill();
})
解决方法
我解决了这个问题,这比我预期的要容易得多, 这是一个范围问题,当我在ipcMain之外分叉child.js时,他没有按预期工作
这是:
ipcMain.on('process',(event,arg) => {
const child = fork('./child.js');
child.send({
hello
})
child.on('message',(msg) => {
event.reply('process-reply',msg);
});
ipcMain.on('process-2',arg) => {
child.send({
hello2
})
child.on('message',(msg) => {
event.reply('process2-reply',msg);
});
})
ipcMain.on('cancel-process',arg) => {
child.kill();
})
})`
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。