【问题标题】:Heroku app continue to restart a Discord BOTHeroku 应用程序继续重启 Discord BOT
【发布时间】:2019-04-26 18:29:45
【问题描述】:

您好,我收到了结束免费测功机测功时间的通知。

我只激活了帐户 (Discord BOT) 中的 1 个应用程序,该应用程序目前只有 1 个命令(一天使用较少)。 我在 Heroku 上读到,机器人在 30 分钟后进入睡眠状态,但查看应用程序日志,它不是从应用程序中检索错误并重新启动 BOT,每 1/2 小时/秒 1 次:

2018-11-23T20:10:48.137766+00:00 app[worker.1]: events.js:173
2018-11-23T20:10:48.137788+00:00 app[worker.1]: throw err; // Unhandled 'error' event
2018-11-23T20:10:48.137790+00:00 app[worker.1]: ^
2018-11-23T20:10:48.137791+00:00 app[worker.1]:
2018-11-23T20:10:48.137793+00:00 app[worker.1]: Error [ERR_UNHANDLED_ERROR]: Unhandled error. ([object Object])
2018-11-23T20:10:48.137794+00:00 app[worker.1]: at Client.emit (events.js:171:17)
2018-11-23T20:10:48.137797+00:00 app[worker.1]: at WebSocketConnection.onError (/app/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:374:17)
2018-11-23T20:10:48.137799+00:00 app[worker.1]: at WebSocket.onError (/app/node_modules/ws/lib/event-target.js:128:16)
2018-11-23T20:10:48.137800+00:00 app[worker.1]: at WebSocket.emit (events.js:182:13)
2018-11-23T20:10:48.137801+00:00 app[worker.1]: at _receiver.cleanup (/app/node_modules/ws/lib/websocket.js:211:14)
2018-11-23T20:10:48.137802+00:00 app[worker.1]: at Receiver.cleanup (/app/node_modules/ws/lib/receiver.js:557:13)
2018-11-23T20:10:48.137804+00:00 app[worker.1]: at WebSocket.finalize (/app/node_modules/ws/lib/websocket.js:206:20)
2018-11-23T20:10:48.137805+00:00 app[worker.1]: at TLSSocket.emit (events.js:182:13)
2018-11-23T20:10:48.137806+00:00 app[worker.1]: at emitErrorNT (internal/streams/destroy.js:82:8)
2018-11-23T20:10:48.137807+00:00 app[worker.1]: at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
2018-11-23T20:10:48.137808+00:00 app[worker.1]: at process._tickCallback (internal/process/next_tick.js:63:19)
2018-11-23T20:10:48.209641+00:00 heroku[worker.1]: Process exited with status 1

我已经在本地重新测试了 BOT,并且在 9 小时内激活它没有检索到任何错误,也使用它。 为什么?我该如何解决?用一个只有 1 个命令的小型机器人结束所有时间是不可能的,只有 1 个 Discord 服务器的使用更少。 (唯一的网络请求是使用命令执行的,而不是连续的!) 谢谢

【问题讨论】:

  • discord 机器人不会像网站那样闲置(这是 heroku 的预期用例)。取而代之的是,它从不和谐的网关的整个时间轮询事件都处于活动状态,这会导致它立即耗尽免费托管时间。如果你想要一个合适的主机,你必须为 VPS 付费。
  • @Minn 这不是真的。 Discord 机器人确实闲置了。至少在大多数情况下,除非有某种后台任务不断 ping 机器人。我有 2 个不和谐机器人,它们已经上线了几天,但使用的托管时间要少得多。

标签: javascript node.js discord.js


【解决方案1】:

您提供的stack-trace 显示由discord.js 发出但未处理的错误。

如果你只添加<discord.Client>.on('error', console.log)就足够测试它了

还要确保您的机器人正在使用工作人员 Dyno

【讨论】:

  • 这不是答案
猜你喜欢
  • 2021-03-30
  • 1970-01-01
  • 2021-11-07
  • 2021-05-03
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 2014-12-20
  • 2018-10-31
相关资源
最近更新 更多