基于活动的 cron 作业调度出现问题

问题描述 投票:0回答:1

我这里有一个

cron.schedule
函数,每秒运行一次代码。当用户在网站上时,它会显示 “在网站中”,当他们进入游戏时,它会显示 “在游戏中” 但是,当用户在游戏中时,它会停止
cron.schedule
,因此当用户返回网站时,代码不会每秒运行。任何帮助将不胜感激。

checkGameStatus()
函数返回
true
false
。 true 存在于用户在网站中, false 表示用户处于游戏中。

let task = cron.schedule("* * * * * *", async () => {
    let isWebsite = await checkGameStatus();
    if (isWebsite) {
        task.start();
        console.log("In website")
    } else {
        task.stop();
        //ipcRenderer.send("trackgame", game, placeid)
        console.log("In game")
    }
});

任何帮助将不胜感激!
注意:这是一个电子项目

javascript cron electron node-cron
1个回答
0
投票

不要停止任务。使用全局变量来保持状态,以便您可以检测转换。

let websiteState = false;
let task = cron.schedule("* * * * * *", async() => {
  let isWebsite = await checkGameStatus();
  if (websiteState != isWebsite) {
    if (isWebsite) {
      console.log("In website")
    } else {
      console.log("In game")
    }
    websiteState = isWebsite;
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.