Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Dash应用程序部署到Heroku:错误代码=H10,H13_Python_Heroku_Gunicorn_Plotly Dash_Git Lfs - Fatal编程技术网

Python 将Dash应用程序部署到Heroku:错误代码=H10,H13

Python 将Dash应用程序部署到Heroku:错误代码=H10,H13,python,heroku,gunicorn,plotly-dash,git-lfs,Python,Heroku,Gunicorn,Plotly Dash,Git Lfs,这是我第一次将应用程序部署到Heroku。我用Python构建了一个Dash应用程序,它在localhost中运行良好,并且我能够按照Dash教程成功地在Heroku上构建和部署它,尽管在我尝试启动它时应用程序没有加载(相反,它会在日志中产生错误) 我使用的是Windows计算机,还必须添加并使用此自定义构建包([位于此处][1])才能使用Git LFS,因为我的一个数据文件太大,无法放在Git存储库中 我已经创建了一个程序文件: web:gunicorn应用程序:服务器 并将gunicorn安

这是我第一次将应用程序部署到Heroku。我用Python构建了一个Dash应用程序,它在localhost中运行良好,并且我能够按照Dash教程成功地在Heroku上构建和部署它,尽管在我尝试启动它时应用程序没有加载(相反,它会在日志中产生错误)

我使用的是Windows计算机,还必须添加并使用此自定义构建包([位于此处][1])才能使用Git LFS,因为我的一个数据文件太大,无法放在Git存储库中

我已经创建了一个程序文件:

web:gunicorn应用程序:服务器

并将gunicorn安装/添加到
requirements.txt

我在成功完成构建后尝试启动应用程序时遇到这些应用程序错误

2020-05-27T03:43:30.000000+00:00 app[api]: Build succeeded
2020-05-27T03:50:00.231102+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-27T03:50:30.788014+00:00 heroku[web.1]: Starting process with command `gunicorn app:server`
2020-05-27T03:50:34.709044+00:00 app[web.1]: [2020-05-27 03:50:34 +0000] [4] [INFO] Starting gunicorn 20.0.4
2020-05-27T03:50:34.710044+00:00 app[web.1]: [2020-05-27 03:50:34 +0000] [4] [INFO] Listening at: http://0.0.0.0:37455 (4)
2020-05-27T03:50:34.710172+00:00 app[web.1]: [2020-05-27 03:50:34 +0000] [4] [INFO] Using worker: sync
2020-05-27T03:50:34.715383+00:00 app[web.1]: [2020-05-27 03:50:34 +0000] [10] [INFO] Booting worker with pid: 10
2020-05-27T03:50:34.720666+00:00 app[web.1]: [2020-05-27 03:50:34 +0000] [11] [INFO] Booting worker with pid: 11
2020-05-27T03:50:35.355566+00:00 heroku[web.1]: State changed from starting to up
2020-05-27T03:50:56.465384+00:00 heroku[web.1]: Process running mem=1280M(250.0%)
2020-05-27T03:50:56.493628+00:00 heroku[web.1]: Error R15 (Memory quota vastly exceeded)
2020-05-27T03:50:56.496502+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-05-27T03:50:56.653528+00:00 heroku[web.1]: Process exited with status 137
2020-05-27T03:50:56.689016+00:00 heroku[web.1]: State changed from up to crashed
2020-05-27T03:50:56.575446+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/" host=####.herokuapp.com request_id=56fd4ef7-74a1-4142-9637
-e76cb6a078f6 fwd="155.33.132.49" dyno=web.1 connect=0ms service=19725ms status=503 bytes=0 protocol=https
2020-05-27T03:51:01.934855+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=####.herokuapp.com request_id=1c984ec2-5f22-4620-b3c5-34957d287d0
f fwd="155.33.132.49" dyno=web.1 connect=5000ms service= status=503 bytes= protocol=https

我对日志的输出没有多大意义,因此我很难解决问题或尝试解决问题。

关于Heroku错误的一些说明:

错误R15:应用程序的内存超过了允许内存的200%。
错误H13:dyno中的进程打开连接,但在写入任何内容之前将其关闭。
错误H10:应用程序崩溃,正在关闭


那么您的应用程序发生了什么变化?
很明显,您的dyno内存超载,导致连接立即关闭,应用程序崩溃

解决方案:

  • 考虑放大你的dynos(至少是为了调试,看看你的应用程序是否可以使用更大的可用内存)
  • 从应用程序中卸载数据,将其存储在数据库中,并根据需要动态检索

您正在使用多少内存?从日志来看,您的请求似乎超出了Heroku帐户的允许范围,这会导致您的应用程序停止。我不知道如何轻松检查内存消耗,但我通过执行一些优化并去掉占用大量段塞空间的Git LFS build pack解决了这个问题。感谢您解释所有这些问题并提出明确的解决方案。我进行了一些优化,减少了内存并缩小了数据规模。我仍然保留着我的数据,但是我删除了很多不必要的依赖项,并减小了存储的数据帧的大小,这样就不再需要Git LFS了。很高兴听到这个消息@快车道