【问题标题】:Flask app deployed on heroku has variables which sometimes after being updated revert back to previous states部署在 heroku 上的 Flask 应用程序具有变量,有时在更新后会恢复到以前的状态
【发布时间】:2020-10-18 09:24:31
【问题描述】:

我对这个令人兴奋的编程世界完全陌生,我希望我没有自己解决这个问题应该归咎于我的经验不足:

问题陈述: 我的应用程序使用烧瓶框架创建,部署在 heroku 上,有变量(存储在烧瓶会话中),有时在更新后会恢复到旧状态,有时它们不会更新。我的假设是这与分布式服务器有关,它为不同状态的变量提供服务。 我已经在我的计算机上进行了广泛的本地测试,并且从未弹出此问题,仅在部署时才会出现。

请问我该如何解决这个问题?我不知道确切的问题可能是什么。 我希望我已经正确地提出了这个问题以得到帮助。我将在 cmets 中接收任何反馈以改进我的问题并获得答案。谢谢。

更多信息: 我开发了一个测验应用程序;对于每个问题,它在后端查询数据库,然后将此信息推送到用户选择答案的前端,javascript 降低生命数或增加分数(取决于正确或错误的答案)此生命和分数信息被传递到后端并存储在“会话”中。 我的第一个问题是;生命值和分数值有时不会更新,有时会更新,然后会恢复到以前的状态。 我的第二个问题;当生命和分数变量状态不变时,问题是否也会重复。

提前感谢您的帮助。

【问题讨论】:

标签: flask heroku flask-session


【解决方案1】:

问题 文件上传到应用程序后消失或在一段时间后被删除。

分辨率 Heroku 文件系统是短暂的 - 这意味着在 dyno 运行时对文件系统的任何更改只会持续到该 dyno 关闭或重新启动。每个测功机都使用最新部署的文件系统的干净副本启动。这类似于有多少基于容器的系统(例如 Docker)在运行。

此外,在正常操作下,dynos 每天都会在一个称为“循环”的过程中重新启动。

这两个事实意味着 Heroku 上的文件系统不适合持久存储数据。如果您需要存储数据,我们建议使用 Postgres(用于数据)等数据库插件或 AWS S3(用于静态文件)等专用文件存储服务。如果您不想使用 AWS 设置帐户来创建 S3 存储桶,我们这里还有处理静态资产存储和处理的插件

https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted

【讨论】:

    猜你喜欢
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2019-10-31
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多