嘿,有什么方法可以将时间设置为data-loader
中的键(由Facebook开发人员创建的用于缓存和批处理的库)?
在他们的文档中只有clearAll()
功能,但我想在将每个键插入缓存的那一刻起 X 秒后单独清除每个键
DataLoader 的缓存仅在请求的长度内存在,并且特定于该单个请求。当与 GraphQL 一起使用时,每个 DataLoader 实例都会使用请求的上下文重新创建。从文档中:
DataLoader 缓存不会取代 Redis、Memcache 或任何其他共享应用程序级缓存。DataLoader 首先是一种数据加载机制,其缓存仅用于不重复加载相同数据的目的,即在对应用程序的单个请求的上下文中不重复加载相同的数据。为此,它维护一个简单的内存内存缓存(更准确地说:.load() 是一个记忆函数)。
虽然 DataLoader 实例上提供了clear
和clearAll
方法,但这些方法仅适用于在同一请求中运行多个突变并且突变可能导致缓存值在同一请求中过时的边缘情况。
虽然您可以预见使用超时来实现您的要求,但无需在设定的时间后使缓存失效或清除缓存 - 一旦您的请求完成,它就会消失。