RT ,用 electron v16 写了个小项目,其中有个功能,需要定时每 2 秒发送 http 请求某个接口。
程序窗口可见的情况下,请求正常发送,一旦程序最小化或锁屏(硬盘已设置不休眠)下,运行几十分钟或几小时后,定时器会变成 1 分钟或者几分钟运行一次,定时器写在渲染进程内,尝试过以下方法,均未解决。
1 、设置 backgroundThrottling
官方文档: https://www.electronjs.org/docs/latest/api/browser-window#new-browserwindowoptions
const mainWindow = new BrowserWindow({
width: 1360,
height: 700,
title: 'XXX',
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: true,
contextIsolation: false,
enableRemoteModule: true,
backgroundThrottling: false
}
});
2 、使用 nodejs 的 timers 或其它定时器 package
const {setInterval, clearInterval} = require('timers')
node-schedule: https://github.com/node-schedule/node-schedule
3 、防止系统休眠
const {app, BrowserWindow, ipcMain, Menu, dialog, powerSaveBlocker} = require('electron');
powerSaveBlocker.start('prevent-display-sleep');
请教下各位 V 友还有其它思路么?
1
woshizhuwow 2023-06-27 18:45:36 +08:00 via Android
用 Worker 应该能解决,具体记不清了,可以搜一下看看
|