Plotly dash 服务器端缓存
Plotly dash server side caching
我在我的 dash
应用程序中使用服务器端缓存,并且我已经按照 documentation 中的示例 4 进行操作。我正在使用它来查询和处理“全局”数据,然后在应用程序的不同组件之间共享这个准备好的数据集。
这很好用;当我加载或刷新应用程序时加载数据。
但是当我离开应用程序几分钟然后回来时(例如,在不关闭应用程序的情况下访问浏览器中的另一个选项卡),数据也会重新加载。所以我感到困惑的是这些会话是如何工作的,以及为什么它们似乎很快就会过期。控制这个的方法是什么?例如。通过增加允许的空闲时间或严格更新页面 load/refresh.
上的会话
记忆数据在以下三种情况之一发生时刷新,
- 输入参数的值发生变化
- 缓存已过期
- 缓存已清除
在您 link 的示例中,每次加载页面时都会生成一个新的 uuid
。此 id 作为参数传递给 memoized 函数,因此由于 (1),数据将在页面加载时刷新。
如果超过预定义的超时时间 (default value is 300 seconds)),数据将按照 (2) 进行刷新。这可能就是您遇到“当我离开应用程序几分钟然后回来时数据也会重新加载”的原因。您可以通过 Cache
对象的 CACHE_DEFAULT_TIMEOUT
参数或通过 memoize
装饰器的 timeout
关键字根据您的需要调整超时。
另外,如果找不到数据(3),将刷新缓存。除了手动删除之外,如果缓存用完 space,也会发生这种情况。默认情况下,500 cache elements are kept。这个数字可以通过 Cache 对象的 CACHE_THRESHOLD
参数来调整。
我在我的 dash
应用程序中使用服务器端缓存,并且我已经按照 documentation 中的示例 4 进行操作。我正在使用它来查询和处理“全局”数据,然后在应用程序的不同组件之间共享这个准备好的数据集。
这很好用;当我加载或刷新应用程序时加载数据。
但是当我离开应用程序几分钟然后回来时(例如,在不关闭应用程序的情况下访问浏览器中的另一个选项卡),数据也会重新加载。所以我感到困惑的是这些会话是如何工作的,以及为什么它们似乎很快就会过期。控制这个的方法是什么?例如。通过增加允许的空闲时间或严格更新页面 load/refresh.
上的会话记忆数据在以下三种情况之一发生时刷新,
- 输入参数的值发生变化
- 缓存已过期
- 缓存已清除
在您 link 的示例中,每次加载页面时都会生成一个新的 uuid
。此 id 作为参数传递给 memoized 函数,因此由于 (1),数据将在页面加载时刷新。
如果超过预定义的超时时间 (default value is 300 seconds)),数据将按照 (2) 进行刷新。这可能就是您遇到“当我离开应用程序几分钟然后回来时数据也会重新加载”的原因。您可以通过 Cache
对象的 CACHE_DEFAULT_TIMEOUT
参数或通过 memoize
装饰器的 timeout
关键字根据您的需要调整超时。
另外,如果找不到数据(3),将刷新缓存。除了手动删除之外,如果缓存用完 space,也会发生这种情况。默认情况下,500 cache elements are kept。这个数字可以通过 Cache 对象的 CACHE_THRESHOLD
参数来调整。