我想在渲染过程中创建一个“Worker”[Unit]
Description= Description here
[Service]
Type=simple
ExecStart=/usr/bin/python /home/script.py
StandardOutput=null
[Install]
WantedBy=multi-user.target
Alias=script.service
。工作进程将执行一些长时间运行的计算并定期报告。
而不是直接在主进程中创建worker BrowserWindow,看起来我可以使用BrowserWindow
模块在渲染器进程中执行此操作:
remote
我想我可以使用import remote from 'electron'
const workerWindow = new remote.BrowserWindow({
show: false,
webPreferences: {
preload: path.join(__dirname, 'preloadWorker.js')
}
});
workerWindow.loadURL('file://' + __dirname + '/worker.html');
的{{1}}对象来监听这样的更新:
webContents
但我无法弄清楚如何做的是从'preloadWorker.js'文件中发出事件。我想在workerWindow
,
workerWindow.webContents.on('worker-result', (event, msg) => console.log(msg));
现在我知道我可以通过使用preloadWorker.js
和setInterval(() =>{
this.webContents.send('worker-result', 'hello from worker');
}, 1000);
发送消息来完成所有这些操作,但我正在尝试为自己保存一些工作......似乎我应该能够访问不知何故,ipcMain
脚本中的ipcRemote
。
答案 0 :(得分:0)
这是一个非常老的问题,您可能不再需要它。但是,您可以使用ipcRenderer.sendToHost
与预加载脚本绑定到的Web视图进行通信。
const { ipcRenderer } = require('electron');
setInterval(() => {
ipcRenderer.sendToHost('worker-result', 'hello from worker');
}, 1000);