我有一个简单的Ruby应用程序,可以在Heroku控制台(heroku run ruby myapp.rb
)内正常工作。如何让它完全自主运行?
它不是基于网络的应用程序,它基本上从网站读取一些信息并发送电子邮件。
我创建了一个Procfile
worker: ruby myapp.rb
日志说" config.ru找不到",我应该把什么放在我的config.ru中?
更新 仍然没有工作......
Procfile:
worker: bundle exec ruby parse_reg.rb
config.ru:
require './parse_reg'
Heroku日志:
2014-09-17T03:27:39 + 00:00 heroku [slug-compiler]:Slug编译 开始2014-09-17T03:27:47 + 00:00 heroku [slug-compiler]:Slug 汇编完成2014-09-17T03:27:47.743136 + 00:00 heroku [api]: 发布由xyz@xyz.com创建的v16 2014-09-17T03:27:47.743136 + 00:00 heroku [api]:部署d4e3e5f xyz@xyz.com 2014-09-17T03:27:48.989789 + 00:00 heroku [web.1]: 国家从崩溃变为开始 2014-09-17T03:27:50.837609 + 00:00 heroku [web.1]:启动过程 命令
bundle exec rackup config.ru -p 44532
2014-09-17T03:28:51.121035 + 00:00 heroku [web.1]:错误R10(启动 超时) - > Web进程无法在60秒内绑定到$ PORT 发布2014-09-17T03:28:51.121241 + 00:00 heroku [web.1]:停止 使用SIGKILL进行处理
好像我的Procfile没有被读取???这真奇怪!
答案 0 :(得分:0)
只需在项目根目录中创建一个config.ru并添加
require './myapp'
确保myapp.rb文件是一个只需要它运行的脚本,它看起来像是通过调用ruby myapp.rb
来工作。
答案 1 :(得分:0)
行。我想出了问题
我必须运行以下命令来启动工作
heroku ps:scale worker=1
参考:https://devcenter.heroku.com/articles/run-non-web-java-processes-on-heroku