heroku 连接超时(连接超时)

Posted

技术标签:

【中文标题】heroku 连接超时(连接超时)【英文标题】:heroku Connection timed out (Connection timed out) 【发布时间】:2022-01-21 00:44:08 【问题描述】:

大家好,如果我正在做的事情正确与否,我想要一个人直到我 我正在尝试做的是在heroku中部署spring boot并从python(flask)框架中获取日期,我在我的设备中本地运行它,在我的设备中本地一切正常但是当尝试在heroku中运行spring boot我收到这个错误 at=error code=H12 desc="Request timeout" method=GET path="/hi" host=java-be.herokuapp.com request_id=454eaa9f-b9e3-4c03-9e7d-4bf5b6c450a9 fwd="5.45.134.17" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=http

这个错误显示在heroku日志中:

org.springframework.web.client.ResourceAccessException:
 I/O error on GET request for "http://192.168.43.142:5000/":
 Connection timed out (Connection timed out); nested exception
 is java.net.ConnectException:
 Connection timed out (Connection timed out)

我的春季启动代码:

 @GetMapping("/")
    String home() throws URISyntaxException 
        try 
            RestTemplate restTemplate = new RestTemplate();

            String url = "http://192.168.43.142:5000/"; // flask local host url
            String helloWorld= restTemplate.getForObject(url, String.class);
            SimpleClientHttpRequestFactory rf =(SimpleClientHttpRequestFactory) restTemplate.getRequestFactory();
            rf.setReadTimeout(1000);
            rf.setConnectTimeout(1000);
            return helloWorld;

         catch (Exception e) 
            e.printStackTrace();
        
        return "";
    

这是我的烧瓶代码:

from flask import Flask
from waitress import serve

app = Flask(__name__)

@app.route('/', methods=['GET'])
def home():
    return "hello world"


if __name__ == '__main__':
    try:
        from waitress import serve
        serve(app, host="0.0.0.0", port="5000")
    except:
        print("unexpected error")

此外,当我在本地运行 heroku 服务器时,它也可以正常工作。

【问题讨论】:

首先检查spring boot app在打开app url时是否显示白页错误 pankaj 它告诉我检查我的日志,当我这样做时,我会收到上述错误,因为你在问题中播种 这意味着您的 Spring Boot 应用程序未正确部署,请检查 heroku java 版本和您的系统 java 版本。默认情况下,heroku 使用 java 1.8,您可以更改 spring java 版本 1.8 并再次部署并检查 其实我用的是java1.8 pankaj 这是您的 IP 地址吗?您是否将其公开为可从外部访问? 【参考方案1】:

您是否已经将 gunicorn 包配置为部署在 heroku 上?

pip3 install flask gunicorn

并创建 Procfile 文件并添加:

web: gunicorn wsgi:app

点击如何部署的链接:https://dev.to/techparida/how-to-deploy-a-flask-app-on-heroku-heb

【讨论】:

想你 Lucas,但我仍然没有在 heroku 中部署烧瓶,我在本地运行它,我在 heroku 中运行它的 spring boot。 你能传递你的本地 git 存储库,以便我可以进行自己的测试吗? github.com/sabbagh99/springBoot-flask 这是包含烧瓶和弹簧启动代码的仓库

以上是关于heroku 连接超时(连接超时)的主要内容,如果未能解决你的问题,请参考以下文章

ActionCable 超时 - Heroku 上的“空闲连接”

基于heroku socket.io服务器的heroku空闲连接超时

在 Heroku 上的 NodeJS 中,MongoDB 与 MongoLab 的连接超时

Heroku上的Node.js Web Socket H15空闲连接超时

Heroku上的Node.js Web Socket H15空闲连接超时

socket.io heroku 请求超时