Как установить расписание для запуска определенного файла в определенное время? - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу попробовать запустить этот файл в командной строке каждый день в 10:00, но этот код, похоже, не работает.

const schedule = require("node-schedule");
var dailyJob = schedule.scheduleJob("0 0 10 * *", function() {
   console.log("Its connecting to database....");
});
dailyJob.start();

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Вы, похоже, неправильно поняли, как работает планировщик. Планировщик будет работать только до тех пор, пока ваш скрипт работает. Если вы остановите свой скрипт, планировщик не будет работать. Поэтому, если ваш скрипт не работает в 10:00, он не будет выполнять вашу функцию.

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

Для Linux вы создаете файл script.js, затем вызываете crontab -e, чтобы добавить cronjob с этой строкой:

0 10 * * * node /path/to/script.js

Это будет запускать ваш сценарий каждый день в 10 утра. Для получения дополнительной информации см. эту вики о стеке потока.

0 голосов
/ 03 апреля 2019

Вы должны запустить скрипт в фоновом режиме или сделать его как сервис.

Шаг 1: создание сценария расписания

Есть много пакетов для планирования, большинство из них основаны на cron.

Это образец с cron упаковкой,

var CronJob = require('cron').CronJob;
new CronJob('* * * * * *', function() {
  console.log('You will see this message every second', Date.now());
}, null, true, 'America/Los_Angeles');

Когда вы запускаете это, он записывает новую строку каждую секунду?

enter image description here

Отлично!

Шаг 2: заставить его работать на фоне

Так как вы можете запустить его в фоновом режиме или в качестве службы? Здесь также есть много вариантов: forever, pm2, systemctl и т. Д. Я буду использовать pm2.

Перейдите и установите pm2,

npm i -g pm2

Запустите скрипт, который вы хотите запустить в фоновом режиме,

pm2 start index.js --name=run-every-second

Проверьте журналы,

pm2 logs run-every-second

И он продолжит работать в фоновом режиме,

enter image description here

Вы даже можете запустить его при запуске и т. Д.,

pm2 startup
pm2 save

Мир!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...