应用程序运行一段时间后,节点cron任务不起作用(节点cron、cronr、timexe)



我正试图让一个节点应用程序的cron作业在我的笔记本电脑上运行,如果我在作业实际运行前不久启动该应用程序,它似乎可以工作。我的意思是,例如,如果我将作业设置为下午2:05运行,并在下午2点启动应用程序,它运行良好,但如果我在上午10点启动应用,我不知道为什么,作业没有运行(但应用程序仍在运行(,这很奇怪。

有人知道锁定我的macbook(当然不是关闭机器(或让应用程序长时间运行(比如超过1-2小时(是否会对节点产生影响,或者macOS是否会导致我的工作即使应用程序仍在运行也无法运行?

这很奇怪,因为如果我在作业需要运行之前启动应用程序,一切都会正常运行,就像应用程序长时间运行会使作业无法运行,但应用程序仍然运行。

我真的很困惑,希望我能说清楚。

代码,以防万一:

const Cronr = require("cronr");
const fetch = require("node-fetch");
const job = new Cronr("* 58 18 1 * * *", () => {
fetch("https://google.com")
.then((r) => r.text())
.then((r) => {
console.log(r);
});
job.start()

这里有一个计划每分钟运行一次的cronjob:

("* * * * *")

首先,检查这个是否正常工作
这是一个计划每晚12:00运行的cronjob:的示例

("0 0 * * *")

也许它与您的系统时钟有关,在我的情况下,我通常使用"正常cron";依赖性。

npm install cron

您可以指定您希望cron检查以执行时间表的时区

var job = new CronJob('5 14 * * *', function() {
console.log('You will see this message every day at 2:05 pm');
}, null, true, 'America/Los_Angeles');
job.start();

顺便说一句,我在这里给你留了一个页面链接,可以更容易地选择你的cron时间表:https://crontab.guru/

希望,这能帮助你

附言:我在使用其他cron依赖项时遇到了很多问题,我总是回到这个问题上。

我终于发现这是因为mac在显示器关闭时进入睡眠状态。我不确定这对运行的程序有什么影响,但我安装了安非他命,并使其不会进入睡眠状态,它起了作用。谢谢大家。

最新更新