Cron作业在本地计算机上工作,但在IIS服务器上不工作

时间:2019-06-12 14:49:08

标签: node.js express cron iisnode node-cron

我有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服务器(生产服务器)中使用相同的代码时,它不起作用。什么都没有。

谢谢。

1 个答案:

答案 0 :(得分:1)

对于我来说,这是正确的代码。您的cronjob可能无法在服务器上运行的原因很少。

  1. 在iisnode服务器上更新任何内容时。刷新后,您必须向服务器发出Atleast一个呼叫。它使您的服务器再次运行。

  2. 服务器有空闲超时时间。这意味着您的服务器将在超时后停止工作。默认情况下,iis的空闲时间是20分钟。您可以将空闲时间设为0,以永久运行服务器。

希望能解决您的问题。