Как заставить приложение node.js работать постоянно программно - PullRequest
0 голосов
/ 09 июля 2019

Я создаю скрипт / приложение / процесс node.js (новый для узла и его определения), который должен запускаться в определенный час (из файла conf) каждый день.Я использую пакет Node Schedule , чтобы запланировать выполнение основной функции каждый день в назначенное время.Но дело в том, что этот пакет выполняет «внутрипроцессное планирование», что означает, что мой сценарий должен работать в фоновом режиме, чтобы планирование работало.В общем, мой код должен выглядеть примерно так:

  1. инициализация глобальных констант и зависимости (требуется)
  2. планирование заданий
  3. определение всех необходимых функций
  4. логика для постоянного запуска скрипта.

Это приложение node.js запускается в докере на машине ec2 в AWS.Как я могу выполнить задачу постоянного запуска?Мне нужно программное решение, что-то (пакет, шаблон дизайна), которое я могу встроить в свой код.

Может быть важно отметить, что внутри моего кода у меня есть только несколько строк "require" и const инициализации, а затем 1 основная функция, которая вызывает все остальное, если это как-то помогает.Кроме того, поскольку я использую тот Node Scheduler, который я упомянул, перезапуск сценария, когда он заканчивается (например, через docker, если это возможно), является плохой идеей, потому что задание планирования будет потеряно, а сам сценарий ничего не делает, кроме инициализации и планирования основногофункционировать до нужного времени, поэтому он будет перезапускаться, возможно, каждые несколько миллисекунд, что, я думаю, является плохой практикой.

1 Ответ

0 голосов
/ 09 июля 2019

Ну, кто-то в разделе комментариев указал мне на мою ошибку ... Я видел следующий параграф о планировщике узлов и даже не проверял, работает ли он без попытки найти способ "работать вечно":

"Обратите внимание, что расписание узла разработано для внутрипроцессного планирования, то есть запланированные задания будут запускаться только до тех пор, пока выполняется ваш сценарий, а расписание исчезает по завершении выполнения. Если вам нужно запланировать задания, которые сохранятся дажекогда ваш скрипт не работает, подумайте об использовании реального cron. "

Но, очевидно, они означали, что я должен продолжать процесс, фактически означает, что планировщик завершит работу, если я закрою терминал.Вот тема с вопросом и ответом о том, как предотвратить это, если кому-то нужна ссылка:

Как заставить приложение node.js работать постоянно?

Спасибо всем, кто пытался помочь:)

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