Задание Cron работает на локальной машине, но не работает на сервере IIS - PullRequest
2 голосов
/ 12 июня 2019

У меня есть бэкэнд-приложение expressjs.Для работы cron я использовал node-cron.Когда я пытаюсь выполнить любую команду в localhost, задание работает.Но когда я пытаюсь применить тот же сценарий cron к своему приложению на рабочем сервере IIS, это не работает.

Я попробовал библиотеки 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();

Этот код корректно работает на локальном хосте.

Но когда я пытаюсь использовать этот же код на сервере IIS (рабочий сервер), он не работает,Ничего не работает.

Заранее спасибо.

1 Ответ

1 голос
/ 13 июня 2019

Код выглядит для меня корректно. Есть несколько причин, по которым ваш cronjob может не работать на сервере.

  1. При обновлении чего-либо на сервере iisnode. Вы должны сделать Atleast один вызов на сервер после обновления. Это заставляет ваш сервер работать снова.

  2. Время ожидания простоя для сервера. Это означает, что ваш сервер перестанет работать после истечения времени ожидания. По умолчанию время простоя составляет 20 минут. Вы можете установить это время простоя на 0, чтобы ваш сервер работал вечно.

Надеюсь, что решить вашу проблему.

...