Node.js 带缓存的hapi服务器方法会并发调用什么?

Node.js 带缓存的hapi服务器方法会并发调用什么?,node.js,caching,hapijs,Node.js,Caching,Hapijs,假设我有一个服务器方法 server.method('foo', foo, { cache: { expiresIn: ###; } }); 假设第一次调用foo需要15秒 如果第二个请求在第一个请求调用server.methods.foo()几秒钟后调用它,hapi会怎么做?只要缓存没有过时,hapi就会短路该方法并返回缓存的值。如果它过时,将再次运行foo方法,重新对缓存进行水化,然后返回结果。但缓存的值还不可用。如果一系列请求排队,那么该值将永远不会被缓存。@Seth它将在第一个请求后1

假设我有一个服务器方法

server.method('foo', foo, { cache: { expiresIn: ###; } });
假设第一次调用foo需要15秒


如果第二个请求在第一个请求调用server.methods.foo()几秒钟后调用它,hapi会怎么做?

只要缓存没有过时,hapi就会短路该方法并返回缓存的值。如果它过时,将再次运行
foo
方法,重新对缓存进行水化,然后返回结果。

但缓存的值还不可用。如果一系列请求排队,那么该值将永远不会被缓存。@Seth它将在第一个请求后15秒被缓存。这个问题的答案的简短版本是,“对第一个呼叫的任何并发呼叫都需要15秒。当第一个调用完成并缓存其结果时,所有后续调用都将获得缓存值。”