【发布时间】:2017-03-11 07:18:15
【问题描述】:
最近无法将控制台与 Heroku 连接:
lsoave@ubuntu:~/rails/github/gitwatcher$ heroku run console
Running console attached to terminal...
Timeout awaiting process
lsoave@ubuntu:~/rails/github/gitwatcher$
它发生在其他人身上吗?
【问题讨论】:
最近无法将控制台与 Heroku 连接:
lsoave@ubuntu:~/rails/github/gitwatcher$ heroku run console
Running console attached to terminal...
Timeout awaiting process
lsoave@ubuntu:~/rails/github/gitwatcher$
它发生在其他人身上吗?
【问题讨论】:
我在意大利的 ISP FastWeb 上遇到了同样的问题。根据我的谷歌搜索,他们似乎阻止了端口 5000。
为了暂时解决这个问题,我正在运行以下命令:
heroku run:detached rake db:migrate
这告诉它无需等待连接到我的机器上的 5000 端口即可运行。 然后,您可以检查刚刚启动的进程的日志。 (heroku 命令会在你运行后告诉你):
heroku logs -p run.1
这告诉它输出正在运行的进程的日志。 但是我发现即使我的进程仍在运行,logs 命令也正在退出。 为了解决这个问题,如果您想“跟踪”日志,可以添加“-t”:
heroku logs -p run.1 -t
当您在日志中看到类似内容时,您将知道您的流程已完成:
2012-10-14T15:36:41+00:00 heroku[run.1]: Process exited with status 0
2012-10-14T15:36:41+00:00 heroku[run.1]: State changed from up to complete
我相信有人可以编写一个脚本
run:detached 运行给定的heroku 命令
heroku logs -p run.1 -t 并显示输出State changed from up to complete 的内容时退出日志进程
【讨论】:
run 等。他们为你做了什么?
发件人:http://devcenter.heroku.com/articles/oneoff-admin-ps
heroku 运行进程在端口 5000 上打开与 Heroku 的连接。如果 您的本地网络或 ISP 阻止了端口 5000,或者您是 遇到连接问题,您将看到类似于以下内容的错误:
$ heroku run rails console Running rails console attached to terminal... Timeout awaiting process您可以通过尝试直接连接来测试您与 Heroku 的连接 使用 telnet 到rendezvous.heroku.com 到端口5000。一个成功的 会话将如下所示:
$ telnet rendezvous.heroku.com 5000 Trying 50.19.103.36... Connected to ec2-50-19-103-36.compute-1.amazonaws.com. Escape character is '^]'.如果你没有得到这个输出,你的电脑被阻止了 访问我们的服务。我们建议联系您的 IT 部门, ISP 或防火墙制造商来解决这个问题。
【讨论】:
有一种方法可以绕过此限制,方法是执行您将使用“heroku run ...”直接作为系统调用执行的命令。
对于这个 heroku 命令: heroku 运行 rake db:migrate 可以用 Ruby 拨打电话 system("rake db:migrate")
这个调用可以作为一些 HTTP GET 请求的结果 - 你最好通过某种方式保护它,这样陌生人就无法访问它。
这不是一个好方法 - 但当你别无选择时 - 它会起作用。
【讨论】:
我在 ISP FastWeb 上遇到了同样的问题,它是意大利的 ISP。
解决问题最简单的方法是在使用heroku run (something)时设置VPN
我个人使用Tunnel Bear,免费为您提供 0.5GB 的互联网流量
【讨论】:
我刚刚成功连接到 Heroku 上的控制台
是所有应用程序还是一个应用程序?我建议检查您的 heroku gem 是否是最新的,您可以运行其他命令,例如 heroku ps,通过 heroku restart 重新启动您的应用程序 - 如果您尝试过这些,请联系 Heroku 支持,因为您的应用程序有问题.
【讨论】: