Skip to content

Commit b4507f6

Browse files
committed
Don't throw an exception when the cache provider is down
1 parent 7ab3736 commit b4507f6

File tree

12 files changed

+657
-563
lines changed

12 files changed

+657
-563
lines changed

.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ dotnet_diagnostic.S127.severity = suggestion
99
dotnet_diagnostic.S2857.severity = suggestion
1010
dotnet_diagnostic.S2094.severity = suggestion
1111
dotnet_diagnostic.CA2227.severity = suggestion
12+
dotnet_diagnostic.CA1031.severity = suggestion
1213

1314
dotnet_diagnostic.IDE0055.severity = none
1415
dotnet_diagnostic.IDE0160.severity = none

src/EFCoreSecondLevelCacheInterceptor.CacheManager.Core/EFCoreSecondLevelCacheInterceptor.CacheManager.Core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Entity Framework Core Second Level Caching Library.</Description>
4-
<VersionPrefix>5.2.0</VersionPrefix>
4+
<VersionPrefix>5.2.1</VersionPrefix>
55
<Authors>Vahid Nasiri</Authors>
66
<TargetFrameworks>net9.0;net8.0;net7.0;net6.0;net5.0;netstandard2.1;netstandard2.0;net462;netcoreapp3.1;</TargetFrameworks>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>

src/EFCoreSecondLevelCacheInterceptor.EasyCaching.Core/EFCoreSecondLevelCacheInterceptor.EasyCaching.Core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Entity Framework Core Second Level Caching Library.</Description>
4-
<VersionPrefix>5.2.0</VersionPrefix>
4+
<VersionPrefix>5.2.1</VersionPrefix>
55
<Authors>Vahid Nasiri</Authors>
66
<TargetFrameworks>net9.0;net8.0;net7.0;net6.0;net5.0;netstandard2.1;netstandard2.0;net462;netcoreapp3.1;</TargetFrameworks>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>

src/EFCoreSecondLevelCacheInterceptor.FusionCache/EFCoreSecondLevelCacheInterceptor.FusionCache.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Entity Framework Core Second Level Caching Library.</Description>
4-
<VersionPrefix>5.2.0</VersionPrefix>
4+
<VersionPrefix>5.2.1</VersionPrefix>
55
<Authors>Vahid Nasiri</Authors>
66
<TargetFrameworks>net9.0;net8.0;</TargetFrameworks>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>

src/EFCoreSecondLevelCacheInterceptor.HybridCache/EFCoreSecondLevelCacheInterceptor.HybridCache.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Entity Framework Core Second Level Caching Library.</Description>
4-
<VersionPrefix>5.2.0</VersionPrefix>
4+
<VersionPrefix>5.2.1</VersionPrefix>
55
<Authors>Vahid Nasiri</Authors>
66
<TargetFrameworks>net9.0;net8.0;</TargetFrameworks>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>

src/EFCoreSecondLevelCacheInterceptor.MemoryCache/EFCoreSecondLevelCacheInterceptor.MemoryCache.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Entity Framework Core Second Level Caching Library.</Description>
4-
<VersionPrefix>5.2.0</VersionPrefix>
4+
<VersionPrefix>5.2.1</VersionPrefix>
55
<Authors>Vahid Nasiri</Authors>
66
<TargetFrameworks>net9.0;net8.0;net7.0;net6.0;net5.0;netstandard2.1;netstandard2.0;net462;netcoreapp3.1;</TargetFrameworks>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>

src/EFCoreSecondLevelCacheInterceptor.StackExchange.Redis/EFCoreSecondLevelCacheInterceptor.StackExchange.Redis.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Entity Framework Core Second Level Caching Library.</Description>
4-
<VersionPrefix>5.2.0</VersionPrefix>
4+
<VersionPrefix>5.2.1</VersionPrefix>
55
<Authors>Vahid Nasiri</Authors>
66
<TargetFrameworks>net9.0;net8.0;net7.0;net6.0;net5.0;netstandard2.1;netstandard2.0;net462;netcoreapp3.1;</TargetFrameworks>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>

src/EFCoreSecondLevelCacheInterceptor/EFCacheServiceCheck.cs

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using Microsoft.Extensions.Logging;
34
using Microsoft.Extensions.Options;
45

56
namespace EFCoreSecondLevelCacheInterceptor;
@@ -9,8 +10,10 @@ namespace EFCoreSecondLevelCacheInterceptor;
910
/// </summary>
1011
public class EFCacheServiceCheck : IEFCacheServiceCheck
1112
{
13+
private readonly ILogger<EFCacheServiceCheck> _cacheServiceCheckLogger;
1214
private readonly IEFCacheServiceProvider _cacheServiceProvider;
1315
private readonly EFCoreSecondLevelCacheSettings _cacheSettings;
16+
private readonly IEFDebugLogger _logger;
1417

1518
private bool? _isCacheServerAvailable;
1619
private DateTime? _lastCheckTime;
@@ -19,14 +22,18 @@ public class EFCacheServiceCheck : IEFCacheServiceCheck
1922
/// Is the configured cache provider online?
2023
/// </summary>
2124
public EFCacheServiceCheck(IOptions<EFCoreSecondLevelCacheSettings> cacheSettings,
22-
IEFCacheServiceProvider cacheServiceProvider)
25+
IEFCacheServiceProvider cacheServiceProvider,
26+
IEFDebugLogger logger,
27+
ILogger<EFCacheServiceCheck> cacheServiceCheckLogger)
2328
{
2429
if (cacheSettings == null)
2530
{
2631
throw new ArgumentNullException(nameof(cacheSettings));
2732
}
2833

2934
_cacheServiceProvider = cacheServiceProvider;
35+
_logger = logger;
36+
_cacheServiceCheckLogger = cacheServiceCheckLogger;
3037
_cacheSettings = cacheSettings.Value;
3138
}
3239

@@ -37,14 +44,34 @@ public bool IsCacheServiceAvailable()
3744
{
3845
if (!_cacheSettings.IsCachingInterceptorEnabled)
3946
{
47+
if (_logger.IsLoggerEnabled)
48+
{
49+
_cacheServiceCheckLogger.LogDebug(message: "The caching interceptor is disabled.");
50+
}
51+
4052
return false;
4153
}
4254

4355
if (!_cacheSettings.UseDbCallsIfCachingProviderIsDown)
4456
{
57+
if (_logger.IsLoggerEnabled)
58+
{
59+
_cacheServiceCheckLogger.LogDebug(
60+
message:
61+
"The caching interceptor isn't set to fallback on db if the caching provider ({Type}) is down.",
62+
_cacheServiceProvider.GetType());
63+
}
64+
4565
return true;
4666
}
4767

68+
if (_logger.IsLoggerEnabled)
69+
{
70+
_cacheServiceCheckLogger.LogDebug(
71+
message: "The caching interceptor is set to fallback on db if the caching provider ({Type}) is down.",
72+
_cacheServiceProvider.GetType());
73+
}
74+
4875
var now = DateTime.UtcNow;
4976

5077
if (_lastCheckTime.HasValue && _isCacheServerAvailable.HasValue &&
@@ -66,14 +93,20 @@ public bool IsCacheServiceAvailable()
6693
}, new EFCachePolicy());
6794

6895
_isCacheServerAvailable = true;
96+
97+
if (_logger.IsLoggerEnabled)
98+
{
99+
_cacheServiceCheckLogger.LogDebug(message: "The cache service is available.");
100+
}
69101
}
70-
catch
102+
catch (Exception ex)
71103
{
72104
_isCacheServerAvailable = false;
73105

74-
if (_cacheSettings.UseDbCallsIfCachingProviderIsDown)
106+
if (_logger.IsLoggerEnabled)
75107
{
76-
throw;
108+
_cacheServiceCheckLogger.LogDebug(ex, message: "The cache service({Type}) isn't available.",
109+
_cacheServiceProvider.GetType());
77110
}
78111
}
79112

src/EFCoreSecondLevelCacheInterceptor/EFCoreSecondLevelCacheInterceptor.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<Description>Entity Framework Core Second Level Caching Library.</Description>
4-
<VersionPrefix>5.2.0</VersionPrefix>
4+
<VersionPrefix>5.2.1</VersionPrefix>
55
<Authors>Vahid Nasiri</Authors>
66
<TargetFrameworks>net9.0;net8.0;net7.0;net6.0;net5.0;netstandard2.1;netstandard2.0;net462;netcoreapp3.1;</TargetFrameworks>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>

0 commit comments

Comments
 (0)