Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 17.02.2021
Сообщений: 3

Настройка при ошибке перезапуска приложения на node js

22.04.2021, 11:31. Показов 2318. Ответов 3
Метки нет (Все метки)

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

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

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

Code
1
2
start npm run start
cmd cd D:\папка с ботом  - в которой лежыт app.js
Этот батовский файл я закинул в автозагрузку виндовс. Тоесть при отключении и включении электроэнергии системник стартует, потом виндовс и автозагрузка бота. Как бы все нормально. Но, не тут то было.
При запуске бота не всегда есть интернет он может появиться после 10-20 минут после старта бота. Соответственно, при старте запускается cmd в котором запускается окно npm в котором работает бот:
Code
1
2
3
4
5
[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 ошибки:
Code
1
2
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 минут) и если интернет есть, то оно стартанет и все заработает. Так вот вопрос как можно сделать перезапуск приложения програмнно?

Буду очень благодарен за любую помощь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2021, 11:31
Ответы с готовыми решениями:

Сброс значения поля в настройка модуля при ошибке
Доброго времени суток. Пишу модуль, в котором хочу реализовать проверку вводимых данных администратором. Есть текстовое поле в которое...

Нужен ли выход из приложения при ошибке glfwOpenWindow
if( !glfwOpenWindow( 300,300, 0,0,0,0,0,0, GLFW_WINDOW ) ) { glfwTerminate(); exit( EXIT_FAILURE ); } нужен ли тут...

При запуске приложения с закрытым Delphi7 появляется сообщение об ошибке
Есть программа в delphi которая соединяется с БД Access, на форме ADOTable и т.д. Суть вопроса такова при запуске приложения с закрытым...

3
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
22.04.2021, 12:41
посмотрите на этот воапос/ответы: https://serverfault.com/questi... ows-server

там вопрос о том, как дождаться network в баш скрипте, я бы решал вашу проблему именно так..

либо подкрутил бы pm2 библиотеку и запускал через неё + нужно поправить код, что бы он завершал процесс с не 0 ошибкой если фетч отвалился, что бы процесс не висел в error стейте..
0
123 / 98 / 15
Регистрация: 02.02.2014
Сообщений: 346
24.04.2021, 04:43
Насколько помню, бот телеграмма не требует постоянного подключения . по сути полностью управляется https запросами
0
1 / 1 / 0
Регистрация: 17.02.2021
Сообщений: 3
29.04.2021, 11:22  [ТС]
Вобщим пробовал я и pm2 и forever но если компютер запускаеться и нет интернета то приложения с ошибкой. И при подключении интернета так и висит с ошибкой.

Но решения я нашел. Как оказалось что бы проверирит подключения к интернету можно воспользоваться самим js ну а потом запустить приложения.

Так вот. Что я нашел и доработал: Функция которая проверияет подключение к инттернету каждых 10 секунд (можно любое время поставить) по сеттаймаут. Если подключение есть то выполняеться услове и запускаеться весь код. Если подключение нет то через сет таймаут вызываеться через оперделенное время функция которая делает все то же самое. Но если подключения есть то запускаеться код. Тоесть приложения не будет запущено пока не появиться интернет. Это впринцепе то что мне надо. Теперь при появлении питания 1. Включаеться системник. 2. Заход в виндовс. 3. Автозагрузка приложения. 4. Которое ждет подключение интрнета и работает.
Так же надо установить npm install internet-available - модуль
Может кто-то будет искать решения этой проблемы вот код:

JavaScript
1
2
3
4
5
6
7
8
9
function f333 () {internetAvailable().then(function(){ 
// код програмы
console.log("Internet");
}).catch(function(){
console.log("No internet"); // Когда нет интрнета
 setTimeout (f333, 10000); // Время через которое срабатует функция снова
});
 
}f333 ();
Всем спс кто пытался помочь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2021, 11:22
Помогаю со студенческими работами здесь

При выходе в интернет появляется сообщение об ошибке приложения Generic Host Process for Win32 Services
Здравствуйте! Соседка принесла старенький системник, с Windows XP SP3 и Kaspersky Total Security на борту (Информация о железе, ПО и...

Сценарий перезапуска приложения
Суть проблемы такова: Есть приложение, которое должно работать 24/7. Необходимо написать Bat-ник, который мониторил бы работу процессов и...

Создать кнопку перезапуска приложения
Привет, друзья. Полистал гугл по этому сайту, но все мои поиски упираются в темы относящиеся к цпп билдеру, и как оказалось тот код не...

Кнопка перезапуска приложения на java
Пишу тестик на java,в конце теста хочу сделать кнопку "Начать заново", а код вообще в голову не идёт,помогите пожалуйста или скиньте...

Сохранение информации после перезапуска приложения
Всем здравствуйте, возник такой вопрос нужна переменная в которой будет храниться какая либо информация в данном случае числовое значение,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru