在heroku上部署了discord bot,bot不会上线

Posted

技术标签:

【中文标题】在heroku上部署了discord bot,bot不会上线【英文标题】:Deployed discord bot on heroku, bot won't come online 【发布时间】:2020-12-21 04:56:50 【问题描述】:

我看过以前的帖子,但我不太了解它们(也许我很愚蠢)。其中一个建议将 procfile 设置为这样

worker: java $JAVA_OPTS -jar <JAR_FILE_PATH>

但我不知道那个文件路径是什么。我按照 Heroku 文档获得了这个,我想知道如何让 discord 机器人上线。

目前,它正在使用命令行“heroku:deploy-war”部署为在 intelliJ 中运行的 maven

这是我的 procfile:worker: java $JAVA_OPTS -jar target\Disbot-1.0-SNAPSHOT.jar

总而言之,这只是一个非常复杂的方式来询问“在heroku中做这件事时的jar文件路径是什么?”

如果有更好的方法或更有效的方法,我很乐意尝试。如果需要更多信息,我会尽可能提供。

【问题讨论】:

解决了这个问题 - 还有更多找到了解决方法。将其打包为 .jar 文件并意识到 Procfile 实际上只是一个命令提示符。使用 Procfile 将 jar 上传到 GitHub,其中包含文本 worker: java -jar Jar.jar。尽管我没有得到答案,但感谢任何花时间研究这个问题的人。 【参考方案1】:

由于 Heroku 在随机的/tmp 中生成target 目录,当前答案在此答案时(2021-09-18)不起作用,所以我按照Heroku documentation 中的这些步骤操作,使用这个项目结构:

.
├─ pom.xml
├─ Procfile
└─ src
   └─ main
      └─ java
         └─ com
            └─ example
               └─ Main.java
将此构建依赖项添加到pom.xml
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>1.1.1</enter code hereversion>
            <configuration>
                <assembleDirectory>target</assembleDirectory>
                <programs>
                    <program>
                        <mainClass>com.example.Main</mainClass>
                        <name>main</name>
                    </program>
            </programs>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase><goals><goal>assemble</goal></goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
在此指令中添加了Procfileworker: sh target/bin/main 提交更改并推送到 Heroku 的遥控器。 缩放测功机使其不会进入睡眠状态(考虑到您的项目有最大小时数):heroku ps:scale worker=1

【讨论】:

【参考方案2】:

解决了这个问题 - 找到了解决方法。将其打包为 .jar 文件,并意识到 Procfile 实际上只是一个命令提示符。使用具有文本工作者的 Procfile 将 jar 上传到 GitHub:java -jar Jar.jar。即使我没有得到答案,也感谢任何花时间看这个问题的人

【讨论】:

以上是关于在heroku上部署了discord bot,bot不会上线的主要内容,如果未能解决你的问题,请参考以下文章

在 Heroku 上部署 node.js 应用程序(discord.jd bot)导致错误

Heroku Discord Bot 构建但在部署时无法工作

从 heroku 部署后,Discord bot 只能工作一分钟左右

discord bot 在生产中离线而不是在本地

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

Discord.js bot 没有上线由 Heroku 托管