Exemple #1
0
        async Task InitRedisAsync(CancellationToken cancellationToken = default)
        {
            await _redis.InitializeAsync(cancellationToken);

            if (!SanityChecks)
            {
                return;
            }

            var key  = $"sanity_check_{Snowflake.New}";
            var data = new byte[] { 1, 2, 3, 4 };

            await _redis.SetAsync(key, data, TimeSpan.FromMinutes(1), cancellationToken : cancellationToken);

            try
            {
                var result = await _redis.GetAsync(key, cancellationToken);

                if (!result.BufferEquals(data))
                {
                    throw new ApplicationException("Redis sanity check failed.");
                }

                _logger.LogWarning("Redis sanity check succeeded.");
            }
            finally
            {
                await _redis.DeleteAsync(key, cancellationToken);
            }
        }
Exemple #2
0
        public async Task DeleteAsync(string[] names, CancellationToken cancellationToken = default)
        {
            await _impl.DeleteAsync(names, cancellationToken);

            await Task.WhenAll(names.Select(n => _redis.DeleteAsync(_options.Prefix + n, CancellationToken.None))); // don't cancel
        }