как настроить задание расписания узла, которое не будет уничтожено после перезагрузки сервера в node js - PullRequest
1 голос
/ 10 марта 2020

Я выполнил запланированное задание по следующему коду:

const schedule = require('node-schedule');

scheduleAuto1A = schedule.scheduleJob(time, function(){
    // do some
});

пользователь вводит время задания cron, и оно должно работать, пока пользователь не отменит его. но проблема в следующем: Когда я перезагружаю свое приложение или перезагружаю сервер, он разрушается. Как я могу сделать запланированную работу навсегда?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Вы можете использовать утилиту Crontab (родная программа linux / unix) для планирования ваших работ. Если вы хотите сделать это через node.js, вы можете использовать PM2 (просто и легко). В противном случае вы можете создать сценарий systemd для запуска вашей программы при запуске.

https://unix.stackexchange.com/questions/47695/how-to-write-startup-script-for-systemd

1 голос
/ 10 марта 2020

Я позволил себе отредактировать вашу фразу, поскольку вы действительно говорите не о заданиях cron, а о запланированном задании в процессе Node.js.

Вы можете либо

  • настроить фактическую cron функциональность машины для запуска этой функции в автономном скрипте по расписанию (возможно, самый простой)
  • настроить фактическую cron функцию машины для запуска ваш скрипт при загрузке (@reboot) (с оговоркой, что вы по-прежнему отвечаете за то, чтобы убедиться, что вы запускаете службу, если она выключается)
  • настроить диспетчер службы машины (вероятно, в наши дни это будет Systemd) для запуска этой функции в автономном скрипте по расписанию (таймеры Systemd) (более современный, чем cron)
  • настройка диспетчера службы машины ( скорее всего, это будет Systemd), чтобы гарантировать, что ваш скрипт будет работать постоянно (единицы Systemd) (вероятно, самый надежный)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...