【发布时间】:2021-12-08 13:38:54
【问题描述】:
我一直在尝试让我的 discord bot (jda/gradle) 在 heroku 上上线一段时间,唯一对我有用的是使用 .jar 文件让我的 bot 上线,但不幸的是它成功了90 秒后离线,heroku 日志给出:
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
这是我的 build.gradle:
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '7.0.0'
}
mainClassName = 'com.xlol.testbot.TestBot'
group 'com.xlol'
version '1.0'
sourceCompatibility = 16
repositories {
mavenCentral()
jcenter()
maven {
name 'm2-dv8tion'
url 'https://m2.dv8tion.net/releases'
}
}
task stage(dependsOn: ['build', 'clean'])
build.mustRunAfter clean
dependencies {
implementation group: 'me.duncte123', name: 'botCommons', version: '1.0.45'
implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
implementation 'net.dv8tion:JDA:4.3.0_324'
implementation 'io.github.cdimascio:java-dotenv:5.1.1'
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
}
compileJava.options.encoding = 'UTF-8'
我的Procfile:
web: java $JAVA_OPTS -jar build/libs/HerokuTestBot-1.0-all.jar -Dserver.port=$PORT $JAR_OPTS
我的system.properties:
java.runtime.version=16
server.port=${PORT:8080}
如果您需要其他任何东西,请提出要求,我已经尝试解决此问题大约 3 天了,任何帮助将不胜感激,在此先感谢!
【问题讨论】:
-
我在这里看不到任何关于您的实际代码的信息。你的机器人会监听 HTTP 请求吗?
-
@Chris 我不知道如何检查,这可能意味着它没有,你能告诉我如何让它监听 HTTP 请求吗?
-
它应该是吗?我不知道它应该做什么。如果它需要响应 HTTP 请求,它必须在 Heroku 分配的端口上监听它们并作为
web进程运行。如果它不响应 HTTP 请求,它应该是一个非web进程,例如可能是worker。 -
@Chris 我已经修复了它,这实际上是解决方案,我想运行一个我需要使用
web的.jar文件,但它与worker一起工作得很好,谢谢
标签: java gradle heroku jar discord-jda