Skip to content

Commit 73d9065

Browse files
committed
refactor Cahce
add support #57
1 parent 4ab462a commit 73d9065

File tree

12 files changed

+93
-179
lines changed

12 files changed

+93
-179
lines changed

SmartSql.sln

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartSql.InvokeSync.Kafka",
9292
EndProject
9393
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartSql.InvokeSync.RabbitMQ", "src\SmartSql.InvokeSync.RabbitMQ\SmartSql.InvokeSync.RabbitMQ.csproj", "{9FC40FC1-8FEC-4048-A78B-AA392F87DCA2}"
9494
EndProject
95-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartSql.Cache.RabbitMQ", "src\SmartSql.Cache.RabbitMQ\SmartSql.Cache.RabbitMQ.csproj", "{6D82B132-6483-4A55-A659-1CD1E74A43EF}"
95+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartSql.Cache.Sync", "src\SmartSql.Cache.Sync\SmartSql.Cache.Sync.csproj", "{1F4EA4D3-D710-480E-9561-69DE388EAFE2}"
9696
EndProject
9797
Global
9898
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -188,10 +188,10 @@ Global
188188
{9FC40FC1-8FEC-4048-A78B-AA392F87DCA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
189189
{9FC40FC1-8FEC-4048-A78B-AA392F87DCA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
190190
{9FC40FC1-8FEC-4048-A78B-AA392F87DCA2}.Release|Any CPU.Build.0 = Release|Any CPU
191-
{6D82B132-6483-4A55-A659-1CD1E74A43EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
192-
{6D82B132-6483-4A55-A659-1CD1E74A43EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
193-
{6D82B132-6483-4A55-A659-1CD1E74A43EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
194-
{6D82B132-6483-4A55-A659-1CD1E74A43EF}.Release|Any CPU.Build.0 = Release|Any CPU
191+
{1F4EA4D3-D710-480E-9561-69DE388EAFE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
192+
{1F4EA4D3-D710-480E-9561-69DE388EAFE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
193+
{1F4EA4D3-D710-480E-9561-69DE388EAFE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
194+
{1F4EA4D3-D710-480E-9561-69DE388EAFE2}.Release|Any CPU.Build.0 = Release|Any CPU
195195
EndGlobalSection
196196
GlobalSection(SolutionProperties) = preSolution
197197
HideSolutionNode = FALSE
@@ -227,7 +227,7 @@ Global
227227
{F97E8897-6A81-49FE-A4CC-636F33A12AF6} = {903A0C86-20AC-4E4A-A33F-25706FA0E20A}
228228
{351A1466-8FE0-41F0-8A13-4F1BA973C58F} = {903A0C86-20AC-4E4A-A33F-25706FA0E20A}
229229
{9FC40FC1-8FEC-4048-A78B-AA392F87DCA2} = {903A0C86-20AC-4E4A-A33F-25706FA0E20A}
230-
{6D82B132-6483-4A55-A659-1CD1E74A43EF} = {9E0B56FD-1AEC-414A-9630-555FA06B287F}
230+
{1F4EA4D3-D710-480E-9561-69DE388EAFE2} = {9E0B56FD-1AEC-414A-9630-555FA06B287F}
231231
EndGlobalSection
232232
GlobalSection(ExtensibilityGlobals) = postSolution
233233
SolutionGuid = {6942F9AB-D574-4C16-8CF7-0D10B637237B}

build/version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<VersionMajor>4</VersionMajor>
44
<VersionMinor>0</VersionMinor>
5-
<VersionPatch>71</VersionPatch>
5+
<VersionPatch>72</VersionPatch>
66
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
77
</PropertyGroup>
88
</Project>

src/SmartSql.Cache.RabbitMQ/ExecutedStatementRequest.cs

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/SmartSql.Cache.RabbitMQ/RabbitMQCacheManager.cs

Lines changed: 0 additions & 104 deletions
This file was deleted.

src/SmartSql.Cache.RabbitMQ/RabbitMQCacheOptions.cs

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/SmartSql.Cache.RabbitMQ/SmartSql.Cache.RabbitMQ.csproj

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<ProjectReference Include="..\SmartSql.InvokeSync\SmartSql.InvokeSync.csproj" />
9+
</ItemGroup>
10+
11+
</Project>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System;
2+
using SmartSql.Configuration;
3+
using SmartSql.InvokeSync;
4+
5+
namespace SmartSql.Cache.Sync
6+
{
7+
public class SyncCacheManager : AbstractCacheManager
8+
{
9+
private readonly ISubscriber _subscriber;
10+
11+
public SyncCacheManager(ISubscriber subscriber)
12+
{
13+
_subscriber = subscriber;
14+
}
15+
16+
protected override void ListenInvokeSucceeded()
17+
{
18+
_subscriber.Received += SubscriberOnReceived;
19+
}
20+
21+
private void SubscriberOnReceived(object sender, SyncRequest e)
22+
{
23+
if (!e.IsStatementSql)
24+
{
25+
return;
26+
}
27+
28+
FlushOnExecuted($"{e.Scope}.{e.SqlId}");
29+
}
30+
}
31+
}

src/SmartSql/Cache/AbstractCacheManager.cs

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,16 @@
77

88
namespace SmartSql.Cache
99
{
10-
public abstract class AbstractCacheManager : ICacheManager
10+
public abstract class AbstractCacheManager : ICacheManager, ISetupSmartSql
1111
{
1212
protected ConcurrentDictionary<string, IList<Configuration.Cache>> StatementMappedFlushCache { get; set; }
1313
protected ConcurrentDictionary<Configuration.Cache, DateTime> CacheMappedLastFlushTime { get; set; }
14-
protected Timer Timer { get; }
14+
protected Timer Timer { get; private set; }
1515
protected TimeSpan DueTime { get; } = TimeSpan.FromMinutes(1);
1616
protected TimeSpan PeriodTime { get; } = TimeSpan.FromMinutes(1);
17-
protected SmartSqlConfig SmartSqlConfig { get; }
18-
protected ILogger Logger { get; }
17+
protected SmartSqlConfig SmartSqlConfig { get; private set; }
18+
protected ILogger Logger { get; private set; }
1919

20-
protected AbstractCacheManager(SmartSqlConfig smartSqlConfig)
21-
{
22-
SmartSqlConfig = smartSqlConfig;
23-
Logger = SmartSqlConfig.LoggerFactory.CreateLogger<AbstractCacheManager>();
24-
InitCacheMapped();
25-
Timer = new Timer(FlushOnInterval, null, DueTime, PeriodTime);
26-
}
27-
2820
private void InitCacheMapped()
2921
{
3022
StatementMappedFlushCache = new ConcurrentDictionary<String, IList<Configuration.Cache>>();
@@ -54,6 +46,7 @@ private void InitCacheMapped()
5446
}
5547
}
5648
}
49+
5750
protected void FlushOnExecuted(string fullSqlId)
5851
{
5952
if (Logger.IsEnabled(LogLevel.Debug))
@@ -74,6 +67,7 @@ protected void FlushOnExecuted(string fullSqlId)
7467
Logger.LogDebug($"FlushOnExecuted -> FullSqlId:[{fullSqlId}] End");
7568
}
7669
}
70+
7771
private void FlushCache(Configuration.Cache cache)
7872
{
7973
if (Logger.IsEnabled(LogLevel.Debug))
@@ -87,6 +81,7 @@ private void FlushCache(Configuration.Cache cache)
8781
CacheMappedLastFlushTime[cache] = DateTime.Now;
8882
}
8983
}
84+
9085
private void FlushOnInterval(object state)
9186
{
9287
if (Logger.IsEnabled(LogLevel.Debug))
@@ -111,7 +106,9 @@ private void FlushOnInterval(object state)
111106
Logger.LogDebug("FlushOnInterval End");
112107
}
113108
}
114-
public abstract void ListenInvokeSucceeded();
109+
110+
protected abstract void ListenInvokeSucceeded();
111+
115112
public virtual bool TryAddCache(ExecutionContext executionContext)
116113
{
117114
var cache = executionContext.Request.Cache;
@@ -130,7 +127,7 @@ public virtual bool TryAddCache(ExecutionContext executionContext)
130127

131128
return isSuccess;
132129
}
133-
130+
134131
public virtual bool TryGetCache(ExecutionContext executionContext, out object cacheItem)
135132
{
136133
var cache = executionContext.Request.Cache;
@@ -166,5 +163,14 @@ public virtual void Dispose()
166163
}
167164
}
168165
}
166+
167+
public virtual void SetupSmartSql(SmartSqlBuilder smartSqlBuilder)
168+
{
169+
SmartSqlConfig = smartSqlBuilder.SmartSqlConfig;
170+
Logger = SmartSqlConfig.LoggerFactory.CreateLogger<AbstractCacheManager>();
171+
InitCacheMapped();
172+
Timer = new Timer(FlushOnInterval, null, DueTime, PeriodTime);
173+
ListenInvokeSucceeded();
174+
}
169175
}
170176
}

src/SmartSql/Cache/CacheManager.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ namespace SmartSql.Cache
1010
{
1111
public class CacheManager : AbstractCacheManager
1212
{
13-
public CacheManager(SmartSqlConfig smartSqlConfig) : base(smartSqlConfig)
14-
{
15-
}
16-
17-
public override void ListenInvokeSucceeded()
13+
protected override void ListenInvokeSucceeded()
1814
{
1915
SmartSqlConfig.InvokeSucceedListener.InvokeSucceeded += (sender, args) =>
2016
{

0 commit comments

Comments
 (0)