我有expressjs后端应用程序。对于cron作业,我使用了node-cron。 当我尝试在localhost作业中运行任何命令时。 但是,当我尝试在生产IIS服务器上的应用程序上应用相同的cron脚本时,那是行不通的。
我尝试了Cron-schedule / node-cron库。 两者都可以在本地主机上正常工作。 但不能在IIS服务器上使用。 [我正在使用IIS节点作为服务器]
const CronJob = require('cron').CronJob;
const fs = require('fs');
const job = new CronJob('0 */1 * * * *', function() {
fs.writeFile("C:\\test\\public\\"+Math.random(), "Hello World!", (err) =>
{
if (err) {
return console.log(err);
}
});
});
job.start();
此代码可在localhost上正常工作。
但是当我尝试在IIS服务器(生产服务器)中使用相同的代码时,它不起作用。什么都没有。
谢谢。
答案 0 :(得分:1)
对于我来说,这是正确的代码。您的cronjob可能无法在服务器上运行的原因很少。
在iisnode服务器上更新任何内容时。刷新后,您必须向服务器发出Atleast一个呼叫。它使您的服务器再次运行。
服务器有空闲超时时间。这意味着您的服务器将在超时后停止工作。默认情况下,iis的空闲时间是20分钟。您可以将空闲时间设为0,以永久运行服务器。
希望能解决您的问题。