java - 让我的 JAVA (jar) 程序在 Heroku 上运行

标签 java heroku dyno

我用 Java 制作了一个机器人,当我运行命令时它工作得很好:

heroku run nohup java -jar bot.jar

但是,24 小时后 Heroku 由于他们的 Dyno 政策而将其关闭。因此,我想到制作一个 Procfile 以便它每次再次激活时都执行上面的命令。

我尝试将以下命令放入 Procfile 中:

worker: java -jar bot.jar
worker: nohup java -jar bot.jar

我什至制作了一个 run.sh 文件,其中包含:

#!/bin/bash
nohup java -jar bot.jar

为了创建一个包含以下内容的Procfile:

worker: sh run.sh

遗憾的是,这一切都不起作用,因为每次 Dyno 执行Procfile(在我通过 git 推送它的新版本之后),机器人就永远不会活跃起来。日志显示:

2017-06-07T13:17:33.651806+00:00 app[api]: Starting process with command `sh run.sh` by XXXX

2017-06-07T13:17:37.958327+00:00 heroku[run.2087]: State changed from starting to up

2017-06-07T13:17:37.948696+00:00 heroku[run.2087]: Awaiting client

2017-06-07T13:17:38.283581+00:00 heroku[run.2087]: Starting process with command `sh run.sh`

2017-06-07T13:17:52.807189+00:00 heroku[run.2087]: Client connection closed. Sending SIGHUP to all processes

2017-06-07T13:17:53.343009+00:00 heroku[run.2087]: Process exited with status 129

2017-06-07T13:17:53.359331+00:00 heroku[run.2087]: State changed from up to complete

2017-06-07T13:24:32.000000+00:00 app[api]: Build started by user XXXX

2017-06-07T13:24:43.090567+00:00 app[api]: Deploy YYYY by user XXXX

2017-06-07T13:24:43.090567+00:00 app[api]: Release v17 created by user XXXX

2017-06-07T13:24:32.000000+00:00 app[api]: Build succeeded

我不知道该怎么做才能让我的机器人从 Procfile 运行。 你能帮我吗?

谢谢。

最佳答案

尝试运行:

$ heroku ps:scale worker=1

这将确保一个工作进程始终运行。

关于java - 让我的 JAVA (jar) 程序在 Heroku 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414662/

相关文章:

heroku - Heroku 的 Dyno 业余爱好时间

ruby-on-rails - Heroku H10 错误但网络测功机没有崩溃

Java - 将 List<Field> 解析为字符串

sockets - 具有外部套接字连接的Heroku worker 作业可以并行运行吗?

git - 在 bitbucket 上使用 git 部署到 Heroku

heroku - 如何为 Heroku Cedar 上的静态 Rack 站点启用 gzip 压缩?

java - primefaces 4.0 actionListener 命令按钮不起作用

Java正则表达式转换

java - 在 Hibernate/JPA 中将货币存储为 BigDecimal -decimal(19,2)

javascript - 可以使用 console.logs 绕过 Heroku 的免费计划的 "Sleeps after 30 mins of inactivity"吗?