Можно ли изменить CacheModule ttl после запуска приложения в nestjs? - PullRequest
0 голосов
/ 29 января 2019

Я зарегистрировал CacheModule с определенными ttl CacheModule.register({ ttl: 5 * 60 * 60 })

Я хочу иметь возможность динамически настраивать ttl после запуска приложения.

Возможно ли это?

1 Ответ

0 голосов
/ 29 января 2019

Это может быть возможно, существует CacheManager, экспортированный из @nestjs/common, где он используется внутри CacheInterceptor, небольшое исследование показывает, что просто передайте аргументы в cache-manager, где ttl может быть функцией, но он оценивается перед передачей его в store (memory - это одна из историй cache-manager), затем внутри него есть строка:

var maxAge = (options.ttl || options.ttl === 0) ? options.ttl * 1000 : lruOpts.maxAge;

по этой строке вы можетеПредположим, что вы, вероятно, могли бы сделать что-то вроде:

const options = {
  ttl: () =>({ valueOf: () => someVariable })
}

Потому что:

let c = { valueOf: () => 2 }
console.log(100*c);

Это только мои мысли, не пробовал.

С уважением.

...