我在dash
应用程序中使用服务器端缓存,并且已经遵循documentation中的示例4。我正在使用它来查询和处理“全局”数据,然后在应用程序的不同组件之间共享此准备好的数据集。
这很好用;当我加载或刷新应用程序时,数据就会加载。
但是当我离开应用程序几分钟并返回时(例如,在不关闭应用程序的情况下访问浏览器中的另一个标签),数据也会重新加载。因此,我困惑的是这些会话的工作方式以及它们为何如此快地到期。有什么控制方法?例如。通过增加允许的空闲时间或在页面加载/刷新时严格更新会话。
答案 0 :(得分:1)
发生以下三种情况之一时,将刷新记录的数据
在链接的示例中,每次页面加载都会生成一个新的uuid
。该id作为参数传递给备注函数,因此由于(1)而在页面加载时刷新数据。
如果超过了预定的超时时间(default value is 300 seconds)),则将按照(2)刷新数据。这可能就是为什么您遇到“ 当我离开应用程序几分钟后又回来时数据也会重新加载的原因”。您可以通过CACHE_DEFAULT_TIMEOUT
对象的Cache
参数或通过timeout
装饰器的memoize
关键字来根据需要调整超时。
此外,如果找不到数据,则将刷新缓存(3)。除了手动删除外,如果缓存空间不足,也会发生这种情况。默认情况下为500 cache elements are kept。可以通过Cache对象的CACHE_THRESHOLD
参数来调整此数字。