Что происходит, когда метод сервера hapi с кэшированием вызывается одновременно?

Предположим, у меня есть серверный метод

server.method('foo', foo, { cache: { expiresIn: ###; } });

и предположим, что первый вызов foo занимает 15 секунд.

Что сделает hapi, если второй запрос вызовет server.methods.foo() через пару секунд после первого запроса?


person Seth    schedule 03.08.2015    source источник
comment
Краткая версия ответа на этот вопрос: любые одновременные вызовы для первого вызова будут занимать 15 секунд. Когда первый вызов завершится и его результат будет кэширован, все последующие вызовы получат кэшированное значение.   -  person Seth    schedule 05.08.2015


Ответы (1)


Пока кеш не устарел, hapi закоротит метод и вернет кешированное значение. Если он устарел, метод foo запустится снова, перезагрузит кеш и вернет результат.

person arb    schedule 03.08.2015
comment
Но кэшированное значение еще недоступно. А если бы выстроилась серия запросов, то значение никогда бы не кэшировалось. - person Seth; 04.08.2015
comment
@Seth будет кэшироваться через 15 секунд после первого запроса. - person Matt Harrison; 04.08.2015