电子应用程序被OSX限制

时间:2016-10-27 19:38:48

标签: macos electron

运行电子1.4.3,我遇到了一个看起来像事件循环的奇怪问题,不知何故被卡住了。我设置了一个间隔,每80毫秒更新一次,但是大约30秒后,它每10秒突然更新一次。这是我用每秒一次的间隔测试它时的一些记录:

2016-10-26T21:30:38.017Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:39.086Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:40.316Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:41.485Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:42.750Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:43.845Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:45.053Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:46.186Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:47.257Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:48.332Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:49.452Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:50.798Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:51.951Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:53.094Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:54.206Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:55.275Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:56.343Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:57.416Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:58.583Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:59.704Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:00.772Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:01.841Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:02.977Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:04.048Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:05.118Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:06.289Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:07.381Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:08.506Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:09.583Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:19.964Z [INFO   ]-(CommandUtils             ) Polling

从最后几行可以看出,间隔突然从每秒钟变为每十秒一次。在我的测试中,我发现它在大约30秒后非常一致,每10秒更新一次。

但是,此问题似乎与系统有关。我们已经在Linux机器上对此进行了测试,无法重现该问题。我们在其他几台Apple笔记本电脑上进行了测试,他们就像我的Apple笔记本电脑一样,表现出这种奇怪的行为。此外,问题似乎取决于它的运行位置而不是它的构建位置 - 在OSX for Linux中构建然后在Linux中运行没有任何问题,但是在OSX中构建Linux然后在OSX中运行确实存在问题。 / p>

我也试过将电子降级到1.3.3,但这并没有解决它。

更新

我绝对怀疑一些OSX的恶作剧。我之前没有使用浏览器窗口,但在尝试连接调试器时,我最终打开了一个连接到应用程序的浏览器窗口。我一做到这一点,就没有发生限制。但是,如果我把那个浏览器窗口放在其他东西后面(这样就不会被渲染),那么节流就会在30秒后发生。

那么如何防止OSX限制我(当前没有UI的)电子应用程序?

1 个答案:

答案 0 :(得分:1)

Avoid app throttling when Electron is in background中所述,解决方案很简单。我只需要添加

electron.powerSaveBlocker.start('prevent-app-suspension');

并且OSX在30秒后不会限制我的应用程序。