SplitTestCache.js 645 B

123456789101112131415161718192021222324252627
  1. const Metrics = require('@overleaf/metrics')
  2. const SplitTestManager = require('./SplitTestManager')
  3. const { CacheLoader } = require('cache-flow')
  4. class SplitTestCache extends CacheLoader {
  5. constructor() {
  6. super('split-test', {
  7. expirationTime: 60, // 1min in seconds
  8. })
  9. }
  10. async load() {
  11. Metrics.inc('split_test_get_split_test_from_mongo', 1, {})
  12. const splitTests = await SplitTestManager.getRuntimeTests()
  13. return new Map(splitTests.map(splitTest => [splitTest.name, splitTest]))
  14. }
  15. serialize(value) {
  16. return value
  17. }
  18. deserialize(value) {
  19. return value
  20. }
  21. }
  22. module.exports = new SplitTestCache()