如何解决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 举报,一经查实,本站将立刻删除。