Всем привет.
Я начинающий программист. И знаю, что при программировании появляются подводные камни и с ними надо бороться. Но тут проблемка интересная, возможно кто подскажет или поделиться ссылкой на другой ресурс, в котором я смогу найти ответ.
Так вот ближе к теме. У меня есть свой телеграм бот- напоминалка. Програмнно бот реализован на 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_reje...). (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_reje...). (rejection id: 2)
Скорей всего программа должна подключиться к телеграмму и к node. B ей надо интернет для регистрации каких-то модулей.
Проблема в том, что при появлении интернета программа так и висит с ошибкой и не работает. То есть, надо настроить перезапуск приложения (ну например раз в 15 минут) и если интернет есть, то оно стартанет и все заработает. Так вот вопрос как можно сделать перезапуск приложения програмнно?
Буду очень благодарен за любую помощь.