0

嘿,有什么方法可以设置时间来输入data-loader(由 facebook 开发人员创建的用于缓存和批处理的库)?

在他们的文档中只有clearAll()功能,但我想在将每个键插入缓存的那一刻起 X 秒后分别清除每个键

4

1 回答 1

1

DataLoader 的缓存只存在于请求的长度内,并且特定于单个请求。与 GraphQL 一起使用时,每个 DataLoader 实例都会使用请求的上下文重新创建。从文档中:

DataLoader 缓存不会取代 Redis、Memcache 或任何其他共享应用程序级缓存。DataLoader 首先是一种数据加载机制,它的缓存仅用于在对您的应用程序的单个请求的上下文中不重复加载相同数据的目的。为此,它维护了一个简单的内存记忆缓存(更准确地说:.load() 是一个记忆函数)。

虽然 DataLoader 实例上有clearclearAll方法可用,但这些方法仅适用于在同一请求中运行多个突变并且突变可能导致缓存值在同一请求中过时的某些边缘情况。

虽然您可以预见到使用超时来实现您的要求,但在一定时间后不需要使缓存失效或清除缓存——一旦您的请求完成,缓存就会消失。

于 2019-07-23T09:00:49.360 回答