【发布时间】:2019-11-04 09:01:32
【问题描述】:
我有一个 Flask 应用程序 (Plotly Dash),它从每天更新的数据库中获取数据。部署在 AWS 上,我使用 gunicorn/nginx 运行该应用程序。问题是,应用程序中使用的数据来自最新的 gunicorn 运行,而不是数据库中的最新数据。
我认为的一个解决方案是使用计时器向 gunicorn 命令(例如 --reload)添加一个属性,以每天自动重启 gunicorn。这可能吗,甚至还有其他解决方法吗?
解决方案:https://community.plot.ly/t/how-to-refresh-data-on-fly/13069
【问题讨论】:
-
正在修改应用程序以在一段时间后自行重启或重启,例如触发器(例如 /service/restart 上的传入 HTTP 请求)是否可能?
-
在页面刷新时重新运行脚本基本上是理想的。
-
可以把flask路由中的脚本打包吗?数据处理需要多长时间,它只是从数据库中提取一些东西还是涉及一些“更长”的处理?你能展示一些烧瓶路线和数据库连接的代码吗?
-
该过程是, - 使用 psycopg2 打开与数据库的连接, - 创建游标, - 使用游标运行 4 个单独的查询。来自查询的数据存储在本地 pandas DataFrames 中,根据特定需求进行聚合,然后进行可视化。整个过程最多可能需要 2 分钟。没有 Flask 路由,我初始化了一个托管 Plotly Dash 应用程序的 Flask(name) 服务器
-
您能否发布您的解决方案作为您自己问题的答案(并接受它)?这样就可以看出这个问题有一个解决方案,希望可以帮助其他人。
标签: python flask psycopg2 plotly-dash