Skip to content

Commit ce90d95

Browse files
authored
Merge pull request #440 from dotnetcore/dev
release v1.8.0
2 parents 174a00a + 9319b1b commit ce90d95

File tree

68 files changed

+2407
-241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+2407
-241
lines changed

EasyCaching.sln

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Microsoft Visual Studio Solution File, Format Version 12.00
1+
Microsoft Visual Studio Solution File, Format Version 12.00
22
# Visual Studio Version 17
33
VisualStudioVersion = 17.2.32616.157
44
MinimumVisualStudioVersion = 10.0.40219.1
@@ -74,6 +74,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyCaching.Bus.ConfluentKa
7474
EndProject
7575
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyCaching.Bus.Zookeeper", "bus\EasyCaching.Bus.Zookeeper\EasyCaching.Bus.Zookeeper.csproj", "{5E488583-391E-4E15-83C1-7301B4FE79AE}"
7676
EndProject
77+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyCaching.FasterKv", "src\EasyCaching.FasterKv\EasyCaching.FasterKv.csproj", "{7191E567-38DF-4879-82E1-73EC618AFCAC}"
78+
EndProject
79+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyCaching.Serialization.MemoryPack", "serialization\EasyCaching.Serialization.MemoryPack\EasyCaching.Serialization.MemoryPack.csproj", "{EEF22C21-F380-4980-B72C-F14488369333}"
80+
EndProject
7781
Global
7882
GlobalSection(SolutionConfigurationPlatforms) = preSolution
7983
Debug|Any CPU = Debug|Any CPU
@@ -196,6 +200,14 @@ Global
196200
{5E488583-391E-4E15-83C1-7301B4FE79AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
197201
{5E488583-391E-4E15-83C1-7301B4FE79AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
198202
{5E488583-391E-4E15-83C1-7301B4FE79AE}.Release|Any CPU.Build.0 = Release|Any CPU
203+
{7191E567-38DF-4879-82E1-73EC618AFCAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
204+
{7191E567-38DF-4879-82E1-73EC618AFCAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
205+
{7191E567-38DF-4879-82E1-73EC618AFCAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
206+
{7191E567-38DF-4879-82E1-73EC618AFCAC}.Release|Any CPU.Build.0 = Release|Any CPU
207+
{EEF22C21-F380-4980-B72C-F14488369333}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
208+
{EEF22C21-F380-4980-B72C-F14488369333}.Debug|Any CPU.Build.0 = Debug|Any CPU
209+
{EEF22C21-F380-4980-B72C-F14488369333}.Release|Any CPU.ActiveCfg = Release|Any CPU
210+
{EEF22C21-F380-4980-B72C-F14488369333}.Release|Any CPU.Build.0 = Release|Any CPU
199211
EndGlobalSection
200212
GlobalSection(SolutionProperties) = preSolution
201213
HideSolutionNode = FALSE
@@ -230,6 +242,8 @@ Global
230242
{4FCF16BF-5E21-4B74-AB45-3C121ADF1485} = {15070C49-A507-4844-BCFE-D319CFBC9A63}
231243
{F7FBADEB-D766-4595-949A-07104B52692C} = {B337509B-75F9-4851-821F-9BBE87C4E4BC}
232244
{5E488583-391E-4E15-83C1-7301B4FE79AE} = {B337509B-75F9-4851-821F-9BBE87C4E4BC}
245+
{7191E567-38DF-4879-82E1-73EC618AFCAC} = {A0F5CC7E-155F-4726-8DEB-E966950B3FE9}
246+
{EEF22C21-F380-4980-B72C-F14488369333} = {15070C49-A507-4844-BCFE-D319CFBC9A63}
233247
EndGlobalSection
234248
GlobalSection(ExtensibilityGlobals) = postSolution
235249
SolutionGuid = {63A57886-054B-476C-AAE1-8D7C8917682E}

build/releasenotes.props

+78-74
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,80 @@
11
<Project>
2-
<PropertyGroup>
3-
<EasyCachingCorePackageNotes>
4-
1. Remove BinaryFormatter.
5-
2. Support removing cache keys by pattern.
6-
</EasyCachingCorePackageNotes>
7-
<EasyCachingMemcachedPackageNotes>
8-
1. Upgrading dependencies.
9-
</EasyCachingMemcachedPackageNotes>
10-
<EasyCachingRedisPackageNotes>
11-
1. Upgrading dependencies.
12-
2. Support removing cache keys by pattern.
13-
</EasyCachingRedisPackageNotes>
14-
<EasyCachingSQLitePackageNotes>
15-
1. Upgrading dependencies.
16-
2. Support removing cache keys by pattern.
17-
</EasyCachingSQLitePackageNotes>
18-
<EasyCachingInMemoryPackageNotes>
19-
1. Upgrading dependencies.
20-
2. Support removing cache keys by pattern.
21-
</EasyCachingInMemoryPackageNotes>
22-
<EasyCachingHybridPackageNotes>
23-
1. Upgrading dependencies.
24-
2. Support removing cache keys by pattern.
25-
</EasyCachingHybridPackageNotes>
26-
<EasyCachingAspectCorePackageNotes>
27-
1. Upgrading dependencies.
28-
</EasyCachingAspectCorePackageNotes>
29-
<EasyCachingCastlePackageNotes>
30-
1. Upgrading dependencies.
31-
</EasyCachingCastlePackageNotes>
32-
<EasyCachingResponseCachingPackageNotes>
33-
1. Upgrading dependencies.
34-
</EasyCachingResponseCachingPackageNotes>
35-
<EasyCachingJsonPackageNotes>
36-
1. Upgrading dependencies.
37-
</EasyCachingJsonPackageNotes>
38-
<EasyCachingMessagePackPackageNotes>
39-
1. Upgrading dependencies.
40-
</EasyCachingMessagePackPackageNotes>
41-
<EasyCachingProtobufPackageNotes>
42-
1. Upgrading dependencies.
43-
</EasyCachingProtobufPackageNotes>
44-
<EasyCachingCSRedisPackageNotes>
45-
1. Upgrading dependencies.
46-
2. Support removing cache keys by pattern.
47-
</EasyCachingCSRedisPackageNotes>
48-
<EasyCachingCSRedisBusPackageNotes>
49-
1. Upgrading dependencies.
50-
2. Support removing cache keys by pattern.
51-
</EasyCachingCSRedisBusPackageNotes>
52-
<EasyCachingRedisBusPackageNotes>
53-
1. Upgrading dependencies.
54-
</EasyCachingRedisBusPackageNotes>
55-
<EasyCachingRabbitBusPackageNotes>
56-
1. Upgrading dependencies.
57-
</EasyCachingRabbitBusPackageNotes>
58-
<EasyCachingKafkaBusPackageNotes>
59-
1. Add EasyCachingKafkaBus.
60-
</EasyCachingKafkaBusPackageNotes>
61-
<EasyCachingZookeeperBusPackageNotes>
62-
1. Add EasyCachingZookeeperBus.
63-
</EasyCachingZookeeperBusPackageNotes>
64-
<EasyCachingDiskPackageNotes>
65-
1. Upgrading dependencies.
66-
2. Support removing cache keys by pattern.
67-
</EasyCachingDiskPackageNotes>
68-
<EasyCachingLiteDBPackageNotes>
69-
1. Upgrading dependencies.
70-
2. Support removing cache keys by pattern.
71-
</EasyCachingLiteDBPackageNotes>
72-
<EasyCachingSTJsonPackageNotes>
73-
1. Upgrading dependencies.
74-
</EasyCachingSTJsonPackageNotes>
75-
</PropertyGroup>
2+
<PropertyGroup>
3+
<EasyCachingCorePackageNotes>
4+
1. Add GetAllKeysByPrefix.
5+
2. Support zremrangebyscore
6+
</EasyCachingCorePackageNotes>
7+
<EasyCachingMemcachedPackageNotes>
8+
1. Upgrading dependencies.
9+
</EasyCachingMemcachedPackageNotes>
10+
<EasyCachingRedisPackageNotes>
11+
1. Upgrading dependencies.
12+
2. Support zremrangebyscore
13+
</EasyCachingRedisPackageNotes>
14+
<EasyCachingSQLitePackageNotes>
15+
1. Upgrading dependencies.
16+
</EasyCachingSQLitePackageNotes>
17+
<EasyCachingInMemoryPackageNotes>
18+
1. Upgrading dependencies.
19+
2. Support evicted event hook.
20+
</EasyCachingInMemoryPackageNotes>
21+
<EasyCachingHybridPackageNotes>
22+
1. Upgrading dependencies.
23+
2. Added a HybridCachingOption to throw an error if the distributed cache throws an error.
24+
</EasyCachingHybridPackageNotes>
25+
<EasyCachingAspectCorePackageNotes>
26+
1. Upgrading dependencies.
27+
</EasyCachingAspectCorePackageNotes>
28+
<EasyCachingCastlePackageNotes>
29+
1. Upgrading dependencies.
30+
</EasyCachingCastlePackageNotes>
31+
<EasyCachingResponseCachingPackageNotes>
32+
1. Upgrading dependencies.
33+
</EasyCachingResponseCachingPackageNotes>
34+
<EasyCachingJsonPackageNotes>
35+
1. Upgrading dependencies.
36+
</EasyCachingJsonPackageNotes>
37+
<EasyCachingMessagePackPackageNotes>
38+
1. Upgrading dependencies.
39+
</EasyCachingMessagePackPackageNotes>
40+
<EasyCachingProtobufPackageNotes>
41+
1. Upgrading dependencies.
42+
</EasyCachingProtobufPackageNotes>
43+
<EasyCachingCSRedisPackageNotes>
44+
1. Upgrading dependencies.
45+
2. Support zremrangebyscore
46+
</EasyCachingCSRedisPackageNotes>
47+
<EasyCachingCSRedisBusPackageNotes>
48+
1. Upgrading dependencies.
49+
</EasyCachingCSRedisBusPackageNotes>
50+
<EasyCachingRedisBusPackageNotes>
51+
1. Upgrading dependencies.
52+
</EasyCachingRedisBusPackageNotes>
53+
<EasyCachingRabbitBusPackageNotes>
54+
1. Upgrading dependencies.
55+
2. Use DefaultObjectPoolProvider to get a DisposableObjectPool instead of a DefaultObjectPool
56+
3. Restore queue model and consumer on disconnection
57+
</EasyCachingRabbitBusPackageNotes>
58+
<EasyCachingKafkaBusPackageNotes>
59+
1. Upgrading dependencies.
60+
</EasyCachingKafkaBusPackageNotes>
61+
<EasyCachingZookeeperBusPackageNotes>
62+
1. Upgrading dependencies.
63+
</EasyCachingZookeeperBusPackageNotes>
64+
<EasyCachingDiskPackageNotes>
65+
1. Upgrading dependencies.
66+
</EasyCachingDiskPackageNotes>
67+
<EasyCachingLiteDBPackageNotes>
68+
1. Upgrading dependencies.
69+
</EasyCachingLiteDBPackageNotes>
70+
<EasyCachingSTJsonPackageNotes>
71+
1. Upgrading dependencies.
72+
</EasyCachingSTJsonPackageNotes>
73+
<EasyCachingMemoryPackageNotes>
74+
1. Support Memory Pack.
75+
</EasyCachingMemoryPackageNotes>
76+
<EasyCachingFaskKVPackageNotes>
77+
1. Support FaskKV.
78+
</EasyCachingFaskKVPackageNotes>
79+
</PropertyGroup>
7680
</Project>

build/version.props

+24-22
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
11
<Project>
22
<PropertyGroup>
3-
<EasyCachingCorePackageVersion>1.7.0</EasyCachingCorePackageVersion>
4-
<EasyCachingMemcachedPackageVersion>1.7.0</EasyCachingMemcachedPackageVersion>
5-
<EasyCachingRedisPackageVersion>1.7.0</EasyCachingRedisPackageVersion>
6-
<EasyCachingSQLitePackageVersion>1.7.0</EasyCachingSQLitePackageVersion>
7-
<EasyCachingInMemoryPackageVersion>1.7.0</EasyCachingInMemoryPackageVersion>
8-
<EasyCachingHybridPackageVersion>1.7.0</EasyCachingHybridPackageVersion>
9-
<EasyCachingAspectCorePackageVersion>1.7.0</EasyCachingAspectCorePackageVersion>
10-
<EasyCachingCastlePackageVersion>1.7.0</EasyCachingCastlePackageVersion>
11-
<EasyCachingResponseCachingPackageVersion>1.7.0</EasyCachingResponseCachingPackageVersion>
12-
<EasyCachingJsonPackageVersion>1.7.0</EasyCachingJsonPackageVersion>
13-
<EasyCachingMessagePackPackageVersion>1.7.0</EasyCachingMessagePackPackageVersion>
14-
<EasyCachingProtobufPackageVersion>1.7.0</EasyCachingProtobufPackageVersion>
15-
<EasyCachingCSRedisPackageVersion>1.7.0</EasyCachingCSRedisPackageVersion>
16-
<EasyCachingRedisBusPackageVersion>1.7.0</EasyCachingRedisBusPackageVersion>
17-
<EasyCachingCSRedisBusPackageVersion>1.7.0</EasyCachingCSRedisBusPackageVersion>
18-
<EasyCachingRabbitBusPackageVersion>1.7.0</EasyCachingRabbitBusPackageVersion>
19-
<EasyCachingKafkaBusPackageVersion>1.7.0</EasyCachingKafkaBusPackageVersion>
20-
<EasyCachingZookeeperBusPackageVersion>1.7.0</EasyCachingZookeeperBusPackageVersion>
21-
<EasyCachingDiskPackageVersion>1.7.0</EasyCachingDiskPackageVersion>
22-
<EasyCachingMsExtPackageVersion>1.7.0</EasyCachingMsExtPackageVersion>
23-
<EasyCachingLiteDBPackageVersion>1.7.0</EasyCachingLiteDBPackageVersion>
24-
<EasyCachingSTJsonPackageVersion>1.7.0</EasyCachingSTJsonPackageVersion>
3+
<EasyCachingCorePackageVersion>1.8.0</EasyCachingCorePackageVersion>
4+
<EasyCachingMemcachedPackageVersion>1.8.0</EasyCachingMemcachedPackageVersion>
5+
<EasyCachingRedisPackageVersion>1.8.0</EasyCachingRedisPackageVersion>
6+
<EasyCachingSQLitePackageVersion>1.8.0</EasyCachingSQLitePackageVersion>
7+
<EasyCachingInMemoryPackageVersion>1.8.0</EasyCachingInMemoryPackageVersion>
8+
<EasyCachingHybridPackageVersion>1.8.0</EasyCachingHybridPackageVersion>
9+
<EasyCachingAspectCorePackageVersion>1.8.0</EasyCachingAspectCorePackageVersion>
10+
<EasyCachingCastlePackageVersion>1.8.0</EasyCachingCastlePackageVersion>
11+
<EasyCachingResponseCachingPackageVersion>1.8.0</EasyCachingResponseCachingPackageVersion>
12+
<EasyCachingJsonPackageVersion>1.8.0</EasyCachingJsonPackageVersion>
13+
<EasyCachingMessagePackPackageVersion>1.8.0</EasyCachingMessagePackPackageVersion>
14+
<EasyCachingProtobufPackageVersion>1.8.0</EasyCachingProtobufPackageVersion>
15+
<EasyCachingCSRedisPackageVersion>1.8.0</EasyCachingCSRedisPackageVersion>
16+
<EasyCachingRedisBusPackageVersion>1.8.0</EasyCachingRedisBusPackageVersion>
17+
<EasyCachingCSRedisBusPackageVersion>1.8.0</EasyCachingCSRedisBusPackageVersion>
18+
<EasyCachingRabbitBusPackageVersion>1.8.0</EasyCachingRabbitBusPackageVersion>
19+
<EasyCachingKafkaBusPackageVersion>1.8.0</EasyCachingKafkaBusPackageVersion>
20+
<EasyCachingZookeeperBusPackageVersion>1.8.0</EasyCachingZookeeperBusPackageVersion>
21+
<EasyCachingDiskPackageVersion>1.8.0</EasyCachingDiskPackageVersion>
22+
<EasyCachingMsExtPackageVersion>1.8.0</EasyCachingMsExtPackageVersion>
23+
<EasyCachingLiteDBPackageVersion>1.8.0</EasyCachingLiteDBPackageVersion>
24+
<EasyCachingSTJsonPackageVersion>1.8.0</EasyCachingSTJsonPackageVersion>
25+
<EasyCachingMemoryPackageVersion>1.8.0</EasyCachingMemoryPackageVersion>
26+
<EasyCachingFaskKVPackageVersion>1.8.0</EasyCachingFaskKVPackageVersion>
2527
</PropertyGroup>
2628
</Project>

bus/EasyCaching.Bus.RabbitMQ/DefaultRabbitMQBus.cs

+48-15
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,10 @@ IPooledObjectPolicy<IModel> _objectPolicy
7070

7171
_subConnection = factory.CreateConnection();
7272

73-
_pubChannelPool = new DefaultObjectPool<IModel>(_objectPolicy);
74-
73+
var provider = new DefaultObjectPoolProvider();
74+
75+
_pubChannelPool = provider.Create(_objectPolicy);
76+
7577
_busId = Guid.NewGuid().ToString("N");
7678

7779
BusName = "easycachingbus";
@@ -148,20 +150,51 @@ public override void BaseSubscribe(string topic, Action<EasyCachingMessage> acti
148150
queueName = _options.QueueName;
149151
}
150152

151-
Task.Factory.StartNew(() =>
153+
Task.Factory.StartNew(
154+
() => StartConsumer(queueName, topic),
155+
TaskCreationOptions.LongRunning);
156+
}
157+
158+
159+
private void StartConsumer(string queueName, string topic)
160+
{
161+
var model = _subConnection.CreateModel();
162+
163+
model.ExchangeDeclare(_options.TopicExchangeName, ExchangeType.Topic, true, false, null);
164+
model.QueueDeclare(queueName, false, false, true, null);
165+
// bind the queue with the exchange.
166+
model.QueueBind(queueName, _options.TopicExchangeName, topic);
167+
var consumer = new EventingBasicConsumer(model);
168+
consumer.Received += OnMessage;
169+
consumer.Shutdown += (sender, e) =>
152170
{
153-
var model = _subConnection.CreateModel();
154-
model.ExchangeDeclare(_options.TopicExchangeName, ExchangeType.Topic, true, false, null);
155-
model.QueueDeclare(queueName, false, false, true, null);
156-
// bind the queue with the exchange.
157-
model.QueueBind(queueName, _options.TopicExchangeName, topic);
158-
var consumer = new EventingBasicConsumer(model);
159-
consumer.Received += OnMessage;
160-
consumer.Shutdown += OnConsumerShutdown;
161-
162-
model.BasicConsume(queueName, true, consumer);
163-
164-
}, TaskCreationOptions.LongRunning);
171+
OnConsumerShutdown(sender, e);
172+
OnConsumerError(queueName, topic, model);
173+
};
174+
175+
consumer.ConsumerCancelled += (s, e) =>
176+
{
177+
OnConsumerError(queueName, topic, model);
178+
};
179+
180+
model.BasicConsume(queueName, true, consumer);
181+
}
182+
183+
private void OnConsumerError(string queueName, string topic, IModel model)
184+
{
185+
StartConsumer(queueName, topic);
186+
BaseOnReconnect();
187+
try
188+
{
189+
if (model?.IsOpen == true)
190+
{
191+
model?.Dispose();
192+
}
193+
}
194+
catch
195+
{
196+
// nothing to do
197+
}
165198
}
166199

167200
/// <summary>

sample/EasyCaching.Demo.ConsoleApp/EasyCaching.Demo.ConsoleApp.csproj

+5-2
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
<ProjectReference Include="..\..\src\EasyCaching.Memcached\EasyCaching.Memcached.csproj" />
2121
<ProjectReference Include="..\..\src\EasyCaching.Redis\EasyCaching.Redis.csproj" />
2222
<ProjectReference Include="..\..\src\EasyCaching.ResponseCaching\EasyCaching.ResponseCaching.csproj" />
23+
<ProjectReference Include="..\..\src\EasyCaching.SQLite\EasyCaching.SQLite.csproj" />
24+
</ItemGroup>
25+
26+
<ItemGroup>
2327
<ProjectReference Include="..\..\serialization\EasyCaching.Serialization.Json\EasyCaching.Serialization.Json.csproj" />
2428
<ProjectReference Include="..\..\serialization\EasyCaching.Serialization.MessagePack\EasyCaching.Serialization.MessagePack.csproj" />
2529
<ProjectReference Include="..\..\serialization\EasyCaching.Serialization.Protobuf\EasyCaching.Serialization.Protobuf.csproj" />
26-
<ProjectReference Include="..\..\src\EasyCaching.SQLite\EasyCaching.SQLite.csproj" />
30+
<ProjectReference Include="..\..\serialization\EasyCaching.Serialization.MemoryPack\EasyCaching.Serialization.MemoryPack.csproj" />
2731
</ItemGroup>
28-
2932
</Project>

0 commit comments

Comments
 (0)