嘿,有什么方法可以设置时间来使用data-loader
中的键(由Facebook开发人员创建的用于缓存和批处理的库)吗?
在他们的文档中,只有clearAll()
函数,但是我想在我将其插入缓存后的X秒后分别清除每个键。
最佳答案
DataLoader的缓存仅在请求期间有效,并且特定于该单个请求。与GraphQL一起使用时,将使用请求的上下文重新创建每个DataLoader实例。从文档中:
DataLoader缓存不会替代Redis,Memcache或任何其他共享的应用程序级缓存。 DataLoader首先是一种数据加载机制,它的缓存仅用于不对应用程序发出单个请求的情况下重复加载相同数据的目的。为此,它维护了一个简单的内存中备注缓存(更准确地说:.load()是一个备注函数)。
尽管DataLoader实例上有clear
和clearAll
方法可用,但是这些方法仅用于某些极端情况下,即您在同一请求中运行多个变异,并且变异可能导致缓存的值被在同一请求中过时。
尽管可以预见的是,可以使用超时来实现所要求的功能,但是在一定时间后,就不必使缓存无效或清除缓存了-请求完成后,缓存就会消失。
关于javascript - 为数据加载器中的键设置生存时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57159378/