我在 dash
中使用服务器端缓存应用程序,我遵循了 documentation 中的示例 4 .我使用它来查询和处理“全局”数据,然后在应用程序中的不同组件之间共享这个准备好的数据集。
这很好用;当我加载或刷新应用程序时加载数据。
但是,当我离开应用程序几分钟并返回时,数据也会重新加载(例如,在不关闭应用程序的情况下访问浏览器中的另一个选项卡)。所以我感到困惑的是这些 session 是如何工作的,以及为什么它们似乎如此迅速地过期。控制这种情况的方法是什么?例如。通过增加允许的空闲时间或在页面加载/刷新时严格更新 session 。
最佳答案
当三件事之一发生时,内存数据会刷新,
在您链接的示例中,一个新的
uuid
在每次页面加载时生成。这个 id 作为参数传递给 memoized 函数,因此由于 (1) 数据将在页面加载时刷新。如果超过预定义的超时时间 (default value is 300 seconds)),数据将按照 (2) 进行刷新。这可能就是为什么您会遇到“当我离开应用程序几分钟然后回来时数据也会重新加载”的原因。您可以通过
CACHE_DEFAULT_TIMEOUT
根据您的需要调整超时。 Cache
的参数对象或通过 timeout
memoize
的关键字装饰器。此外,如果找不到数据,缓存将被刷新(3)。除了手动删除之外,如果缓存空间不足,也会发生这种情况。默认情况下,500 cache elements are kept .这个数字可以通过
CACHE_THRESHOLD
调整Cache 对象的参数。
关于python - Plotly 破折号服务器端缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63244511/