【发布时间】:2019-07-23 17:00:49
【问题描述】:
嘿,有什么方法可以为data-loader(facebook 开发人员创建的缓存和批处理库)中的键设置时间?
在他们的文档中只有 clearAll() 函数,但我想在将每个键插入缓存后 X 秒后分别清除它
【问题讨论】:
标签: javascript graphql graphql-js dataloader
嘿,有什么方法可以为data-loader(facebook 开发人员创建的缓存和批处理库)中的键设置时间?
在他们的文档中只有 clearAll() 函数,但我想在将每个键插入缓存后 X 秒后分别清除它
【问题讨论】:
标签: javascript graphql graphql-js dataloader
DataLoader 的缓存只存在于请求的长度内,并且特定于单个请求。与 GraphQL 一起使用时,每个 DataLoader 实例都会使用请求的上下文重新创建。来自文档:
DataLoader 缓存不会取代 Redis、Memcache 或任何其他共享应用程序级缓存。 DataLoader 首先是一种数据加载机制,它的缓存仅用于在对您的应用程序的单个请求的上下文中不重复加载相同数据的目的。为此,它维护了一个简单的内存记忆缓存(更准确地说:.load() 是一个记忆函数)。
虽然 DataLoader 实例上有 clear 和 clearAll 方法可用,但这些方法仅适用于在同一请求中运行多个突变并且突变可能导致缓存的某些边缘情况值在同一个请求中是陈旧的。
虽然您可以预见到使用超时来实现您的要求,但在设定的时间后无需使缓存失效或清除缓存 - 一旦您的请求完成,缓存就会消失。
【讨论】: