Показать сообщение отдельно
  #1 (permalink)  
Старый 22.04.2021, 11:29
Новичок на форуме
Отправить личное сообщение для drozd2016 Посмотреть профиль Найти все сообщения от drozd2016
 
Регистрация: 11.01.2021
Сообщений: 7

Настройка при ошибке перезапуска приложения на node js
Всем привет.
Я начинающий программист. И знаю, что при программировании появляются подводные камни и с ними надо бороться. Но тут проблемка интересная, возможно кто подскажет или поделиться ссылкой на другой ресурс, в котором я смогу найти ответ.

Так вот ближе к теме. У меня есть свой телеграм бот- напоминалка. Програмнно бот реализован на js с библиотекой telegraf.js. Он присылает напоминания пару раз в день. Все работает отлично. Но, как всегда есть слово - но.

Мне нужно, чтобы бот работал 24-ри часа в сутки. Для этого я выделил системник на котором настроил в биосе включения по питанию. Запуск бота поместил в батовский файлик в нем прописано:

Код:
start npm run start
cmd cd D:\папка с ботом  - в которой лежыт app.js
Этот батовский файл я закинул в автозагрузку виндовс. Тоесть при отключении и включении электроэнергии системник стартует, потом виндовс и автозагрузка бота. Как бы все нормально. Но, не тут то было.
При запуске бота не всегда есть интернет он может появиться после 10-20 минут после старта бота. Соответственно, при старте запускается cmd в котором запускается окно npm в котором работает бот:
Код:
[nodemon] 2.0.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node app.js`
и тут выдает 3 ошибки:
Код:
(node:10496) UnhandledPromiseRejectionWarning: FetchError: request to https://api.telegram.org/bot.....
(node:10496) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:10496) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
Скорей всего программа должна подключиться к телеграмму и к node. B ей надо интернет для регистрации каких-то модулей.
Проблема в том, что при появлении интернета программа так и висит с ошибкой и не работает. То есть, надо настроить перезапуск приложения (ну например раз в 15 минут) и если интернет есть, то оно стартанет и все заработает. Так вот вопрос как можно сделать перезапуск приложения програмнно?

Буду очень благодарен за любую помощь.
Ответить с цитированием