Heroku Discord Bot 可构建但无法正常工作

Posted

技术标签:

【中文标题】Heroku Discord Bot 可构建但无法正常工作【英文标题】:Heroku Discord Bot builds but doesn't work 【发布时间】:2020-08-24 19:20:21 【问题描述】:

我正在尝试在 Heroku(Discord JDA、Maven)上托管一个不和谐机器人。我通过连接到 Github 然后部署来做到这一点。机器人“部署”(查看附件)但实际上并没有工作(查看附件)。

我可能做错了什么,或者有其他人遇到过类似的问题吗?

【问题讨论】:

你怎么知道它不起作用?错误在哪里? yoyu可以显示部署bot的日志吗? 【参考方案1】:

可能的解决方案:

    设置一个 Procfile。 Procfile 基本上告诉 Heroku 在部署您的应用程序时要运行什么命令。在 Procfile 中,写入 worker: node index.js。另外,确保 Procfile 有一个大写的“P”。

    设置 package.json。

    npm 初始化

然后只需跳过设置,您的文件就会自动创建。 重要。在您的 package.json 文件中,添加您的节点和 npm 版本。

node -v
npm -v

然后在你的 package.json 中输入这个。

"engines": 
     node: "your-version-here"
     npm: "your-version-here"

    然后尝试再次将您的应用部署到 Heroku。此外,请确保为您的应用设置了“nodejs”构建包。运行它并测试 discord 机器人。

【讨论】:

【参考方案2】:

快速而肮脏的部署方式:

您需要在此处设置一个 Procfile,详细信息:https://devcenter.heroku.com/articles/procfile

procfile 基本上是一个没有扩展名的文件,它告诉测功机如何执行您的程序。

一个简单的

worker: java $JAVA_OPTS -jar <PATH_TO_JAR>

如果您不需要更多配置,将可以正常工作,请参阅该链接了解更多信息。

然后您可以像这样部署它(最好将 procfile 和 jar 放在同一目录中):

$ heroku deploy:jar -a <YOUR_HEROKU_APP_NAME> --jdk <JDK_VERSION> --jar <PATH_TO_JAR> -i Procfile

然后启动它(假设你想要一个工人测功机,这是不和谐应该需要的)

$ heroku ps:scale -a <YOUR_HEROKU_APP_NAME> worker=1

然后停止它:

$ heroku ps:scale -a <YOUR_HEROKU_APP_NAME> worker=0

我发现这比使用 git 简单得多,尤其是在您进行测试或简单/快速的事情时。

【讨论】:

以上是关于Heroku Discord Bot 可构建但无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

discord.py bot 正确构建在 heroku 上,但显示脱机

无法在heroku上托管discord bot(js)

Discord Bot 构建在 Heroku 上不断崩溃

Discord bot 无法使用 Python 在 Heroku 上运行

基于 Python 的 Discord Bot 在本地工作,但从未在 heroku 上托管

Discord.JS Bot 通过 Heroku 托管抛出 500 错误