Example #1
0
        protected override IMemoizationStore CreateStore(DisposableDirectory testDirectory)
        {
            var context  = new Context(_logger);
            var keySpace = Guid.NewGuid().ToString();

            var primaryRedisInstance = LocalRedisProcessDatabase.CreateAndStartEmpty(_redis, _logger, _clock);

            _databasesToDispose.Add(primaryRedisInstance);

            var primaryFactory = RedisDatabaseFactory.CreateAsync(
                context,
                provider: new LiteralConnectionStringProvider(primaryRedisInstance.ConnectionString),
                logSeverity: Severity.Info,
                usePreventThreadTheft: false).GetAwaiter().GetResult();
            var primaryRedisAdapter = new RedisDatabaseAdapter(primaryFactory, keySpace: keySpace);

            var secondaryRedisInstance = LocalRedisProcessDatabase.CreateAndStartEmpty(_redis, _logger, _clock);

            _databasesToDispose.Add(secondaryRedisInstance);

            var secondaryFactory = RedisDatabaseFactory.CreateAsync(
                context,
                provider: new LiteralConnectionStringProvider(secondaryRedisInstance.ConnectionString),
                logSeverity: Severity.Info,
                usePreventThreadTheft: false).GetAwaiter().GetResult();
            var secondaryRedisAdapter = new RedisDatabaseAdapter(secondaryFactory, keySpace: keySpace);

            var memoizationDb = new RedisMemoizationDatabase(primaryRedisAdapter, secondaryRedisAdapter, _clock, _memoizationExpiryTime, operationsTimeout: null, slowOperationRedisTimeout: null);

            return(new RedisMemoizationStore(_logger, memoizationDb));
        }
Example #2
0
        protected override IMemoizationStore CreateStore(DisposableDirectory testDirectory)
        {
            var context          = new Context(_logger);
            var localDatabase    = LocalRedisProcessDatabase.CreateAndStartEmpty(_redis, _logger, _clock);
            var connectionString = localDatabase.ConnectionString;

            _databasesToDispose.Add(localDatabase);

            var connectionStringProvider = new LiteralConnectionStringProvider(connectionString);
            var redisFactory             = RedisDatabaseFactory.CreateAsync(context, connectionStringProvider).GetAwaiter().GetResult();
            var redisAdapter             = new RedisDatabaseAdapter(redisFactory, keySpace: Guid.NewGuid().ToString());

            var memoizationDb = new RedisMemoizationDatabase(redisAdapter, _clock, _memoizationExpiryTime);

            return(new RedisMemoizationStore(_logger, memoizationDb));
        }