仪表板服务器端缓存

时间:2020-08-04 10:02:13

标签: python pandas plotly plotly-dash

我在dash应用程序中使用服务器端缓存,并且已经遵循documentation中的示例4。我正在使用它来查询和处理“全局”数据,然后在应用程序的不同组件之间共享此准备好的数据集。

这很好用;当我加载或刷新应用程序时,数据就会加载。

但是当我离开应用程序几分钟并返回时(例如,在不关闭应用程序的情况下访问浏览器中的另一个标签),数据也会重新加载。因此,我困惑的是这些会话的工作方式以及它们为何如此快地到期。有什么控制方法?例如。通过增加允许的空闲时间或在页面加载/刷新时严格更新会话。

1 个答案:

答案 0 :(得分:1)

发生以下三种情况之一时,将刷新记录的数据

  1. 输入参数的值更改
  2. 缓存已过期
  3. 缓存已清除

在链接的示例中,每次页面加载都会生成一个新的uuid。该id作为参数传递给备注函数,因此由于(1)而在页面加载时刷新数据。

如果超过了预定的超时时间(default value is 300 seconds)),则将按照(2)刷新数据。这可能就是为什么您遇到“ 当我离开应用程序几分钟后又回来时数据也会重新加载的原因”。您可以通过CACHE_DEFAULT_TIMEOUT对象的Cache参数或通过timeout装饰器的memoize关键字来根据需要调整超时。

此外,如果找不到数据,则将刷新缓存(3)。除了手动删除外,如果缓存空间不足,也会发生这种情况。默认情况下为500 cache elements are kept。可以通过Cache对象的CACHE_THRESHOLD参数来调整此数字。