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); } }
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 }