Запуск сценария Node.js каждый день в определенные часы - PullRequest
1 голос
/ 12 июля 2020

Я пытаюсь запускать файл Javascript каждый день, особенно между 9:00 и 17:00, и мне было интересно, есть ли правильный способ сделать это с помощью cron или другого метода. В 17:00 я бы хотел, чтобы запущенный скрипт завершился, как если бы я нажал ctrl- c в терминале. На следующее утро он автоматически перезапустится.

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

Это можно сделать, разделив задачу на два этапа.

  1. Должно быть запланировано задание cron , которое запускает процессы узла каждый день в 9 утра. Для этого предположим, что у вас есть файл узла с именем script. js, и его расположение / home / user / example / script. js, тогда следующая команда будет использоваться для запускать каждый день в 9 утра ежедневно
* 9 * * * /usr/local/bin/node /home/user/example/script.js
Теперь, чтобы закрывать скрипт каждый день в 17:00, это можно сделать неявно с помощью функции setTimeout . Ниже приведен код, который должен быть написан в сценарии . js
setTimeout((function() {
return process.exit(1);}), 28,8000,000);//28,8000,000 Milliseconds

Таким образом, скрипт. js будет запускать свое выполнение ежедневно в 9 утра и останавливаться в 17:00.

0 голосов
/ 12 июля 2020

Можно создать служебный файл systemd для вашего скрипта , например, , тогда вы можете использовать cron для запуска и остановки службы в требуемое время.

...