我一直试图将我的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
我的鼻涕虫大小相当大(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没有检测到应用程序启动时,它会一次又一次地尝试,直到超时。
按照Heroku教程中让Python应用程序在Heroku上运行,您应该使用以下内容从环境中获取端口号:
port = int(os.environ.get("PORT", 5000))
然后使用它来运行应用
app.run(host='0.0.0.0', port=port)
考虑到最后的错误,您可能应该降级应用程序使用的wheel
版本,以匹配Heroku上的可用版本。
当我启动并运行Flask应用程序时,轮子也遇到了类似的问题。我使用sudo apt-get python3-pip
更新了我的pip,它起作用了。