Настройка при ошибке перезапуска приложения на node js
Всем привет.
Я начинающий программист. И знаю, что при программировании появляются подводные камни и с ними надо бороться. Но тут проблемка интересная, возможно кто подскажет или поделиться ссылкой на другой ресурс, в котором я смогу найти ответ. Так вот ближе к теме. У меня есть свой телеграм бот- напоминалка. Програмнно бот реализован на js с библиотекой telegraf.js. Он присылает напоминания пару раз в день. Все работает отлично. Но, как всегда есть слово - но. Мне нужно, чтобы бот работал 24-ри часа в сутки. Для этого я выделил системник на котором настроил в биосе включения по питанию. Запуск бота поместил в батовский файлик в нем прописано: Код:
start npm run start При запуске бота не всегда есть интернет он может появиться после 10-20 минут после старта бота. Соответственно, при старте запускается cmd в котором запускается окно npm в котором работает бот: Код:
[nodemon] 2.0.7 Код:
(node:10496) UnhandledPromiseRejectionWarning: FetchError: request to https://api.telegram.org/bot..... Проблема в том, что при появлении интернета программа так и висит с ошибкой и не работает. То есть, надо настроить перезапуск приложения (ну например раз в 15 минут) и если интернет есть, то оно стартанет и все заработает. Так вот вопрос как можно сделать перезапуск приложения програмнно? Буду очень благодарен за любую помощь. |
Вобщим пробовал я и pm2 и forever но если компютер запускаеться и нет интернета то приложения с ошибкой. И при подключении интернета так и висит с ошибкой.
Но решения я нашел. Как оказалось что бы проверирит подключения к интернету можно воспользоваться самим js ну а потом запустить приложения. Так вот. Что я нашел и доработал: Функция которая проверияет подключение к инттернету каждых 10 секунд (можно любое время поставить) по сеттаймаут. Если подключение есть то выполняеться услове и запускаеться весь код. Если подключение нет то через сет таймаут вызываеться через оперделенное время функция которая делает все то же самое. Но если подключения есть то запускаеться код. Тоесть приложения не будет запущено пока не появиться интернет. Это впринцепе то что мне надо. Теперь при появлении питания 1. Включаеться системник. 2. Заход в виндовс. 3. Автозагрузка приложения. 4. Которое ждет подключение интрнета и работает. Так же надо установить npm install internet-available - модуль Может кто-то будет искать решения этой проблемы вот код: function f333 () {internetAvailable().then(function(){ // код програмы console.log("Internet"); }).catch(function(){ console.log("No internet"); // Когда нет интрнета setTimeout (f333, 10000); // Время через которое срабатует функция снова }); }f333 (); Всем спс кто пытался помочь:) |
Часовой пояс GMT +3, время: 04:35. |