微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Heroku 上的 Flask 应用程序不会停止引导工人

如何解决Heroku 上的 Flask 应用程序不会停止引导工人

我一直在尝试将我的 Flask 项目(Twilio SMS bot)部署到 Heroku,但是每当我部署日志时,都会显示工作人员正在不停地启动:

2021-01-10T18:57:11.525145+00:00 app[web.1]: [2021-01-10 18:57:11 +0000] [20632] [INFO] Booting worker with pid: 20632
2021-01-10T18:57:11.902427+00:00 app[web.1]: [2021-01-10 18:57:11 +0000] [20633] [INFO] Booting worker with pid: 20633
2021-01-10T18:57:12.018448+00:00 app[web.1]: [2021-01-10 18:57:12 +0000] [20634] [INFO] Booting worker with pid: 20634
2021-01-10T18:57:12.475161+00:00 app[web.1]: [2021-01-10 18:57:12 +0000] [20635] [INFO] Booting worker with pid: 20635
2021-01-10T18:57:12.622354+00:00 app[web.1]: [2021-01-10 18:57:12 +0000] [20636] [INFO] Booting worker with pid: 20636
2021-01-10T18:57:12.945738+00:00 app[web.1]: [2021-01-10 18:57:12 +0000] [20637] [INFO] Booting worker with pid: 20637
2021-01-10T18:57:13.301953+00:00 app[web.1]: [2021-01-10 18:57:13 +0000] [20638] [INFO] Booting worker with pid: 20638
2021-01-10T18:57:13.506961+00:00 app[web.1]: [2021-01-10 18:57:13 +0000] [20639] [INFO] Booting worker with pid: 20639
2021-01-10T18:57:13.806545+00:00 app[web.1]: [2021-01-10 18:57:13 +0000] [20640] [INFO] Booting worker with pid: 20640
2021-01-10T18:57:13.912250+00:00 app[web.1]: [2021-01-10 18:57:13 +0000] [20641] [INFO] Booting worker with pid: 20641
2021-01-10T18:57:14.842376+00:00 app[web.1]: [2021-01-10 18:57:14 +0000] [20644] [INFO] Booting worker with pid: 20644
2021-01-10T18:57:15.082539+00:00 app[web.1]: [2021-01-10 18:57:15 +0000] [20645] [INFO] Booting worker with pid: 20645
2021-01-10T18:57:15.245975+00:00 app[web.1]: [2021-01-10 18:57:15 +0000] [20646] [INFO] Booting worker with pid: 20646

当我尝试启动应用程序时,我最终在 30 秒后收到错误 12(超时)。这是我的 procfile

web: gunicorn main:app

我的 slug 大小非常大 (261 MB),所以我不确定它是否与此有关。我也在构建日志中注意到:

ERROR: tensorflow-cpu 2.4.0 has requirement wheel~=0.35,but you'll have wheel 0.34.2 which is incompatible.

我不确定这是否会导致错误。一切都在我的本地机器上正常运行。任何建议将不胜感激 - 提前致谢。

解决方法

这里是 Twilio 开发者布道者。

我在这里猜测,但可能是您的应用程序未在 Heroku 期望的端口号上启动(由 PORT 环境变量提供。当 Heroku 未检测到应用程序已启动时,它一次又一次地尝试,直到超时。

按照 getting a Python application running on Heroku 的 Heroku 教程,您应该使用以下内容从环境中获取端口号:

port = int(os.environ.get("PORT",5000))

然后使用它来运行应用程序

app.run(host='0.0.0.0',port=port)

鉴于最后出现的错误,您可能应该降级您的应用程序使用的 wheel 版本以匹配 Heroku 上可用的版本。

,

当我启动并运行 Flask 应用程序时,我遇到了与 Wheel 类似的问题。我使用 sudo apt-get python3-pip 更新了我的点子,它有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?