首页 > 解决方案 > 如何使用数据库中的新数据更新 plotly dash 应用程序

问题描述

我有一个 Flask 应用程序(Plotly Dash),它从每天更新的数据库中获取数据。部署在 AWS 上,我使用 gunicorn/nginx 运行该应用程序。问题是,应用程序中使用的数据来自最新的 gunicorn 运行,而不是数据库中的最新数据。

我认为的一个解决方案是使用计时器向 gunicorn 命令(例如 --reload)添加一个属性,以每天自动重启 gunicorn。这是否可能,甚至是否有其他解决方法?

解决方案https ://community.plot.ly/t/how-to-refresh-data-on-fly/13069

标签: pythonflaskpsycopg2plotly-dash

解决方案


您可以使用SIGHUP 信号向 gunicorn 发送信号以重新加载。要手动尝试,您可以使用killall -s 1 gunicorn, 每天重新加载,您可能想要使用诸如cron或某些 AWS 特定服务之类的东西。AWS 似乎对此有一些文档

使用killall是次优的,因为它对进程的名称进行操作。如果名称更改(例如 gunicorn 将自身重命名以使用应用程序名称标识)或者如果有多个 gunicorn 在运行,它可能会中断。但只要这是服务器的唯一用例,就应该没问题。


推荐阅读