设置数据加载器中键的生存时间

set time to live to keys in data loader

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

在他们的文档中只有 clearAll() 函数,但我想在将每个键插入缓存后 X 秒后分别清除每个键

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

DataLoader caching does not replace Redis, Memcache, or any other shared application-level cache. DataLoader is first and foremost a data loading mechanism, and its cache only serves the purpose of not repeatedly loading the same data in the context of a single request to your Application. To do this, it maintains a simple in-memory memoization cache (more accurately: .load() is a memoized function).

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

虽然您可以预见地使用超时来实现您的要求,但在设定的时间后无需使缓存失效或清除缓存——它会在您的请求完成后立即消失。