TransWikia.com

Автореконнект бота в случае краша [discord.js]

Stack Overflow на русском Asked on January 4, 2022

У меня есть бот в Discord’е, и мне нужно в случае его краша не перезапускать бота вручную, а чтобы он сам реконнектился, примерно так я и сделал, но это совсем не то что мне надо:

setInterval(()=>{
  client.login("токен")
},100)

One Answer

Правильным решением данной задачи будет отлов всех exception и предотвращения краша самого приложения. Написав тесты и построив правильную архитектуру приложения вы не задумаетесь об автореконнекте.

Есть альтернативный способ, использование модуля Forever


Тестовый проект выглядит следующим образом:

package.json

{
  "name": "app-crash-auto-restart",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "forever -s index.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "forever": "^3.0.0"
  }
}

index.js

setTimeout(() => {
    throw 'My exception';
}, 5000);

Запуск через консоль

npm run start

Результат вывода консоли через 15 секунд работы

C:OSPaneldomainsapp-crash-auto-restart>npm run start

> [email protected] start C:OSPaneldomainsapp-crash-auto-restart
> forever -s index.js

error: Forever detected script exited with code: 1
error: Script restart attempt #1
error: Forever detected script exited with code: 1
error: Script restart attempt #2
error: Forever detected script exited with code: 1
error: Script restart attempt #3

Answered by MoloF on January 4, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP