Heroku run console get “Timeout awaiting process”

后端 未结 5 1958
孤街浪徒
孤街浪徒 2020-12-13 05:04

No way to have console wired with Heroku lately:

lsoave@ubuntu:~/rails/github/gitwatcher$ heroku run console
Running console attached to terminal... 
Timeout         


        
相关标签:
5条回答
  • 2020-12-13 05:24

    I had the same problem on the ISP FastWeb, which is an ISP here in Italy. Based on my Googling, it appears that they block port 5000.

    To get around it for now, I am running the following:

    heroku run:detached rake db:migrate
    

    That tells it to run without waiting to connect to my machine on port 5000. Then, you can examine the logs for your process you just kicked off. (The heroku command will tell you this after you run it):

    heroku logs -p run.1
    

    That tells it to output the logs for the running process. But I found that the logs command was exiting even though my process was still running. To get around that, you can add "-t" if you want to "tail" the logs:

    heroku logs -p run.1 -t   
    

    You'll know your process is done when you see something like this in the logs:

    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
    

    I'm sure someone could whip up a script that would

    1. Run the given heroku command with run:detached
    2. Examine the output to determine what its process name was (run.1, run.2, etc)
    3. run heroku logs -p run.1 -t and show me the output
    4. exit the logs process when it sees something like State changed from up to complete
    0 讨论(0)
  • 2020-12-13 05:29

    From: http://devcenter.heroku.com/articles/oneoff-admin-ps

    The heroku run process opens a connection to Heroku on port 5000. If your local network or ISP is blocking port 5000, or you are experiencing a connectivity issue, you will see an error similar to:

    $ heroku run rails console
    Running rails console attached to terminal... 
    Timeout awaiting process
    

    You can test your connection to Heroku by trying to connect directly to port 5000 by using telnet to rendezvous.heroku.com. A successful session will look like this:

    $ telnet rendezvous.heroku.com 5000
    Trying 50.19.103.36...
    Connected to ec2-50-19-103-36.compute-1.amazonaws.com.
    Escape character is '^]'. 
    

    If you do not get this output, your computer is being blocked from accessing our services. We recommend contacting your IT department, ISP, or firewall manufacturer to move forward with this issue.

    0 讨论(0)
  • 2020-12-13 05:40

    There's a way to bypass this restriction by executing commands you were going to execute with 'heroku run ...' directly as system calls.

    For this heroku command: heroku run rake db:migrate One could make a call in Ruby system("rake db:migrate")

    This call could be done as a result on some HTTP GET request - you better protect by some means, so that it wouldn't be accessible for strangers.

    It's not a nice way - but when you don't have a choice - it works.

    0 讨论(0)
  • 2020-12-13 05:42

    I had the same problem on the ISP FastWeb, which is an ISP here in Italy.

    The most simple way to overcome the problem is set a VPN when you are using heroku run (something)

    Personally I use Tunnel Bear that offer you 0.5GB of internet traffic for free

    0 讨论(0)
  • 2020-12-13 05:47

    I've just connected successfully to a console on Heroku

    Is it all apps or just a single one? I'd suggest checking your heroku gem is up to date, that you can run other commands like heroku ps, restart your application via heroku restart - if you've tried these then get in touch with Heroku support as something is wrong with your application.

    0 讨论(0)
提交回复
热议问题