次の例を検討してください。
setInterval(function()
{
console.log(new Date());
});
OS X で実行するとelectron example.js
、ドックバーにアイコンが開き、コンソールに時刻が表示されます。ただし、アプリがフォーカスされていない場合は、しばらくするとスロットリングが始まります。
周りを見回したところ、これは OS X の省電力戦略によるものであることがわかりました。では、バックグラウンドで作業を続けるために必要な場合はどうすればよいでしょうか? 私のアプリは時々ちょっとしたことをするデーモンであり、ユーザーが何年も私のアプリをぼんやりと見つめているわけにはいきません。
ここでできることがわかりました
electron.powerSaveBlocker.start('prevent-app-suspension');
実際に私の問題を解決します。ただし、これは非常に侵襲的です。私の理解では、システムがまったくスリープ状態にならないからです。私はこれをあまり必要としません。コンピューターがアクティブでオンラインのときに、アプリを永久に起動させずに何かを実行する必要があるだけです。
ユーザーがアプリを常にフォアグラウンドに保持することと、コンピューターを永久にスリープ状態にしないことの中間に何かありませんか?