小型应用程序在virtualenv中可以在桌面上运行,但在Heroku上会间歇性失败



我的小型计算器应用程序使用Python和Flask在本地桌面上运行良好,但当我部署到Heroku时,它可以很好地进行3-6次计算,然后给出"内部服务器错误";。按下后退按钮有时会允许进行更多的计算,但随后错误再次出现。我已经在iPhone、Windows桌面和iPad上进行了测试(所有这些都是我哥哥需要工作的(。

应用程序地址:https://woodcraft-bfc.herokuapp.com/

用于应用程序的代码和文件的GitHub(我通过GitHub部署应用程序(:https://github.com/helpmerick/board-feet

Heroku日志文件文本:

2020-08-23T18:08:44.907813+00:00 app[web.1]:     return self.view_functions[rule.endpoint](**req.view_args)
2020-08-23T18:08:44.907814+00:00 app[web.1]:   File "/app/board-feet.py", line 33, in CalculateNum
2020-08-23T18:08:44.907814+00:00 app[web.1]:     total = total
2020-08-23T18:08:44.907814+00:00 app[web.1]: NameError: name 'total' is not defined
2020-08-23T18:08:44.909289+00:00 app[web.1]: 10.150.246.196 - - [23/Aug/2020:18:08:44 +0000] "POST / HTTP/1.1" 500 290 "https://woodcraft-bfc.herokuapp.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
2020-08-23T18:08:44.911275+00:00 heroku[router]: at=info method=POST path="/" host=woodcraft-bfc.herokuapp.com request_id=8449a472-b1e2-4ca1-b800-6f1bf598634d fwd="69.244.31.219" dyno=web.1 connect=0ms service=15ms status=500 bytes=470 protocol=https
2020-08-23T18:08:48.115993+00:00 app[web.1]: fill in all fields
2020-08-23T18:08:48.116195+00:00 app[web.1]: 96   9   1
2020-08-23T18:08:48.117883+00:00 app[web.1]: 10.150.246.196 - - [23/Aug/2020:18:08:48 +0000] "POST / HTTP/1.1" 200 3642 "https://woodcraft-bfc.herokuapp.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
2020-08-23T18:08:48.119712+00:00 heroku[router]: at=info method=POST path="/" host=woodcraft-bfc.herokuapp.com request_id=e4199448-07a5-426a-90c4-2c25bb862175 fwd="69.244.31.219" dyno=web.1 connect=0ms service=4ms status=200 bytes=3884 protocol=https
2020-08-23T18:10:30.586204+00:00 heroku[router]: at=info method=POST path="/" host=woodcraft-bfc.herokuapp.com request_id=784a2f0e-91db-4e12-8e29-6521cacc21a1 fwd="69.244.31.219" dyno=web.1 connect=18ms service=13ms status=200 bytes=3889 protocol=https
2020-08-23T18:10:30.574701+00:00 app[web.1]: fill in all fields
2020-08-23T18:10:30.574857+00:00 app[web.1]: 96   9   1
2020-08-23T18:10:30.576635+00:00 app[web.1]: 10.9.251.250 - - [23/Aug/2020:18:10:30 +0000] "POST / HTTP/1.1" 200 3647 "https://woodcraft-bfc.herokuapp.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
2020-08-23T18:10:47.438566+00:00 app[web.1]: fill in all fields
2020-08-23T18:10:47.438807+00:00 app[web.1]: 144   25   3.25

感谢您的真知灼见。

尝试使用global进行共享状态排序在开发环境中有效,但当应用程序部署在多个进程中运行时失败。在您的情况下,POST被路由到与执行GET时间初始化的进程不同的进程。

跨请求持久化状态的常见方法是磁盘上的文件、浏览器会话和某种风格的数据库。

最新更新