java - 无法在 Heroku 上为 discord bot 设置 java 端口
问题描述
我使用 javacord 库编写了一个 discord 机器人,它运行良好,因为如果我在 IntelliJ idea 中运行程序,该机器人在 Discord 上在线(我可以使用它)。
当我将机器人上传到 heroku 时,我可以使用它几分钟,然后出现以下错误:
2019-02-04T22:21:01.000000+00:00 app[api]: Build started by user aa@aa.com
2019-02-04T22:21:15.414268+00:00 heroku[web.1]: State changed from crashed to starting
2019-02-04T22:21:19.806474+00:00 heroku[web.1]: Starting process with command `java $JAVA_OPTS -jar warbot.jar -server.port=22270`
2019-02-04T22:21:14.200586+00:00 app[api]: Deploy dc88e3ab by user aa@aa.com
2019-02-04T22:21:22.813747+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2019-02-04T22:21:22.825641+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2019-02-04T22:21:23.528694+00:00 app[web.1]: 2019-02-04 22:21:23.469+0000 INFO org.javacord.core.util.logging.ExceptionLoggerDelegateImpl No Log4j2 compatible logger was found. Using default Javacord implementation!
2019-02-04T22:21:27.268649+00:00 app[web.1]: The bot has started
2019-02-04T22:21:14.200586+00:00 app[api]: Release v25 created by user aa@aa.com
2019-02-04T22:21:24.000000+00:00 app[api]: Build succeeded
2019-02-04T22:22:50.697048+00:00 heroku[web.1]: State changed from starting to crashed
2019-02-04T22:22:50.530237+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
2019-02-04T22:22:50.530363+00:00 heroku[web.1]: Stopping process with SIGKILL
2019-02-04T22:22:50.678651+00:00 heroku[web.1]: Process exited with status 137
基本上,经过几次机器人崩溃。我怎样才能解决这个问题?
网上很多答案都提到了 Spring 框架,但我没有使用它!并且涉及的解决方案-Dspring.server.port=$PORT
不起作用。我的 Procfile 中有这个:
网页:java $JAVA_OPTS -jar warbot.jar -server.port=$PORT
jar 与Procfilewarbot.jar
位于同一位置(位于根目录中)。我怎样才能解决这个问题?看来上面那行还不足以设置端口。
我基本上必须设置端口,这样 heroku 就不会抱怨,我的机器人可以保持在线!
解决方案
推荐阅读
- python - Dijkstra 的 SPF 算法中两个顶点(节点)实例之间的 TypeError
- r - 在 RStudio 中使用 RWeka 导入 ARFF 数据集(依赖错误:rJava)
- python - python 扩展上的地址消毒剂
- android - RecyclerView 中的 ViewModel
- apache-spark - 在 VM 集群上安装 Presto 并将其连接到不同 Yarn 集群上的 HDFS
- git - 合并 Git 存储库
- laravel - laravel 5:“未按要求设置会话存储。” 在 api.php
- javascript - 使用 react 和 componentDidMount 获取数据
- django - 在 nginx Docker 容器中重写 URL 错误地使用了内部端口
- linux - 如何使用期望运行 SSH 脚本?