Skip to content

Commit 62441d5

Browse files
authored
Merge pull request dotnetcore#2 from dotnetcore/master
更新仓库
2 parents 0c243a2 + 152cbe7 commit 62441d5

File tree

35 files changed

+214
-69
lines changed

35 files changed

+214
-69
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,5 @@ jobs:
4343
run: |
4444
for file in nugetpkgs/*.nupkg
4545
do
46-
dotnet nuget push $file -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate -s https://www.nuget.org/api/v2/package
46+
dotnet nuget push $file -k ${{ secrets.MYGET_API_KEY }} --skip-duplicate -s https://www.myget.org/F/ncc/api/v2/package
4747
done

Build.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

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp3.0</TargetFramework>
4+
<TargetFramework>netcoreapp3.1</TargetFramework>
55
<IsPackable>false</IsPackable>
66
</PropertyGroup>
77

build/releasenotes.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
1. Upgrading dependencies.
99
</EasyCachingMemcachedPackageNotes>
1010
<EasyCachingRedisPackageNotes>
11-
1. Upgrading dependencies.
11+
1. Support SyncTimeout and AsyncTimeout (#282).
1212
</EasyCachingRedisPackageNotes>
1313
<EasyCachingSQLitePackageNotes>
1414
1. Upgrading dependencies.
@@ -50,7 +50,7 @@
5050
1. Upgrading dependencies.
5151
</EasyCachingRabbitBusPackageNotes>
5252
<EasyCachingDiskPackageNotes>
53-
1. Upgrading dependencies.
53+
1. fixed disk provider tryset after expired (#280).
5454
</EasyCachingDiskPackageNotes>
5555
<EasyCachingLiteDBPackageNotes>
5656
1. Upgrading dependencies.

build/version.props

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
<Project>
22
<PropertyGroup>
3-
<EasyCachingCorePackageVersion>1.1.0</EasyCachingCorePackageVersion>
4-
<EasyCachingMemcachedPackageVersion>1.1.0</EasyCachingMemcachedPackageVersion>
5-
<EasyCachingRedisPackageVersion>1.1.0</EasyCachingRedisPackageVersion>
6-
<EasyCachingSQLitePackageVersion>1.1.0</EasyCachingSQLitePackageVersion>
7-
<EasyCachingInMemoryPackageVersion>1.1.0</EasyCachingInMemoryPackageVersion>
8-
<EasyCachingHybridPackageVersion>1.1.0</EasyCachingHybridPackageVersion>
9-
<EasyCachingAspectCorePackageVersion>1.1.0</EasyCachingAspectCorePackageVersion>
10-
<EasyCachingCastlePackageVersion>1.1.0</EasyCachingCastlePackageVersion>
11-
<EasyCachingResponseCachingPackageVersion>1.1.0</EasyCachingResponseCachingPackageVersion>
12-
<EasyCachingJsonPackageVersion>1.1.0</EasyCachingJsonPackageVersion>
13-
<EasyCachingMessagePackPackageVersion>1.1.0</EasyCachingMessagePackPackageVersion>
14-
<EasyCachingProtobufPackageVersion>1.1.0</EasyCachingProtobufPackageVersion>
15-
<EasyCachingCSRedisPackageVersion>1.1.0</EasyCachingCSRedisPackageVersion>
16-
<EasyCachingRedisBusPackageVersion>1.1.0</EasyCachingRedisBusPackageVersion>
17-
<EasyCachingCSRedisBusPackageVersion>1.1.0</EasyCachingCSRedisBusPackageVersion>
18-
<EasyCachingRabbitBusPackageVersion>1.1.0</EasyCachingRabbitBusPackageVersion>
19-
<EasyCachingDiskPackageVersion>1.1.0</EasyCachingDiskPackageVersion>
20-
<EasyCachingMsExtPackageVersion>1.1.0</EasyCachingMsExtPackageVersion>
21-
<EasyCachingLiteDBPackageVersion>1.1.0</EasyCachingLiteDBPackageVersion>
22-
<EasyCachingSTJsonPackageVersion>1.1.0</EasyCachingSTJsonPackageVersion>
3+
<EasyCachingCorePackageVersion>1.2.0</EasyCachingCorePackageVersion>
4+
<EasyCachingMemcachedPackageVersion>1.2.0</EasyCachingMemcachedPackageVersion>
5+
<EasyCachingRedisPackageVersion>1.2.1</EasyCachingRedisPackageVersion>
6+
<EasyCachingSQLitePackageVersion>1.2.0</EasyCachingSQLitePackageVersion>
7+
<EasyCachingInMemoryPackageVersion>1.2.0</EasyCachingInMemoryPackageVersion>
8+
<EasyCachingHybridPackageVersion>1.2.0</EasyCachingHybridPackageVersion>
9+
<EasyCachingAspectCorePackageVersion>1.2.0</EasyCachingAspectCorePackageVersion>
10+
<EasyCachingCastlePackageVersion>1.2.0</EasyCachingCastlePackageVersion>
11+
<EasyCachingResponseCachingPackageVersion>1.2.0</EasyCachingResponseCachingPackageVersion>
12+
<EasyCachingJsonPackageVersion>1.2.0</EasyCachingJsonPackageVersion>
13+
<EasyCachingMessagePackPackageVersion>1.2.0</EasyCachingMessagePackPackageVersion>
14+
<EasyCachingProtobufPackageVersion>1.2.0</EasyCachingProtobufPackageVersion>
15+
<EasyCachingCSRedisPackageVersion>1.2.0</EasyCachingCSRedisPackageVersion>
16+
<EasyCachingRedisBusPackageVersion>1.2.0</EasyCachingRedisBusPackageVersion>
17+
<EasyCachingCSRedisBusPackageVersion>1.2.0</EasyCachingCSRedisBusPackageVersion>
18+
<EasyCachingRabbitBusPackageVersion>1.2.0</EasyCachingRabbitBusPackageVersion>
19+
<EasyCachingDiskPackageVersion>1.2.1</EasyCachingDiskPackageVersion>
20+
<EasyCachingMsExtPackageVersion>1.2.0</EasyCachingMsExtPackageVersion>
21+
<EasyCachingLiteDBPackageVersion>1.2.0</EasyCachingLiteDBPackageVersion>
22+
<EasyCachingSTJsonPackageVersion>1.2.0</EasyCachingSTJsonPackageVersion>
2323
</PropertyGroup>
2424
</Project>

bus/EasyCaching.Bus.CSRedis/DefaultCSRedisBus.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class DefaultCSRedisBus : EasyCachingAbstractBus
2222
/// <param name="clients">Clients.</param>
2323
public DefaultCSRedisBus(IEnumerable<EasyCachingCSRedisClient> clients)
2424
{
25+
this.BusName = "easycachingbus";
2526
this._client = clients.FirstOrDefault(x => x.Name.Equals("easycachingbus"));
2627
}
2728

bus/EasyCaching.Bus.RabbitMQ/DefaultRabbitMQBus.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,10 @@ IPooledObjectPolicy<IModel> _objectPolicy
7070
_subConnection = factory.CreateConnection();
7171

7272
_pubChannelPool = new DefaultObjectPool<IModel>(_objectPolicy);
73-
73+
7474
_busId = Guid.NewGuid().ToString("N");
75+
76+
BusName = "easycachingbus";
7577
}
7678

7779
/// <summary>

bus/EasyCaching.Bus.Redis/Configurations/EasyCachingOptionsExtensions.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@ public static class EasyCachingOptionsExtensions
1616
/// </summary>
1717
/// <param name="options">Options.</param>
1818
/// <param name="configure">Configure bus settings.</param>
19+
/// <param name="name">name.</param>
1920
public static EasyCachingOptions WithRedisBus(
2021
this EasyCachingOptions options
2122
, Action<RedisBusOptions> configure
23+
, string name = EasyCachingConstValue.DefaultRedisName
2224
)
2325
{
2426
ArgumentCheck.NotNull(configure, nameof(configure));
2527

26-
options.RegisterExtension(new RedisBusOptionsExtension(configure));
28+
options.RegisterExtension(new RedisBusOptionsExtension(name, configure));
2729
return options;
2830
}
2931

@@ -32,10 +34,12 @@ this EasyCachingOptions options
3234
/// </summary>
3335
/// <param name="options">Options.</param>
3436
/// <param name="configuration">The configuration.</param>
37+
/// <param name="name">The name.</param>
3538
/// <param name="sectionName">The section name in the configuration file.</param>
3639
public static EasyCachingOptions WithRedisBus(
3740
this EasyCachingOptions options
3841
, IConfiguration configuration
42+
, string name = EasyCachingConstValue.DefaultRedisName
3943
, string sectionName = EasyCachingConstValue.RedisBusSection
4044
)
4145
{
@@ -58,7 +62,7 @@ void configure(RedisBusOptions x)
5862
foreach (var item in redisOptions.Endpoints) x.Endpoints.Add(item);
5963
}
6064

61-
options.RegisterExtension(new RedisBusOptionsExtension(configure));
65+
options.RegisterExtension(new RedisBusOptionsExtension(name, configure));
6266
return options;
6367
}
6468
}

bus/EasyCaching.Bus.Redis/Configurations/IRedisSubscriberProvider.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,10 @@ public interface IRedisSubscriberProvider
1212
/// </summary>
1313
/// <returns>The subscriber.</returns>
1414
ISubscriber GetSubscriber();
15+
16+
/// <summary>
17+
/// Gets the name of subscriber.
18+
/// </summary>
19+
string SubscriberName { get; }
1520
}
1621
}

bus/EasyCaching.Bus.Redis/Configurations/RedisBusOptions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,10 @@ public class RedisBusOptions : BaseRedisOptions
1212
/// </summary>
1313
/// <value>The database.</value>
1414
public int Database { get; set; } = 0;
15+
16+
/// <summary>
17+
/// Gets or sets the serializer name that should be use in this bus.
18+
/// </summary>
19+
public string SerializerName { get; set; }
1520
}
1621
}

bus/EasyCaching.Bus.Redis/Configurations/RedisBusOptionsExtension.cs

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
using EasyCaching.Core.Serialization;
77
using Microsoft.Extensions.DependencyInjection;
88
using Microsoft.Extensions.DependencyInjection.Extensions;
9+
using Microsoft.Extensions.Logging;
10+
using Microsoft.Extensions.Options;
911

1012
/// <summary>
1113
/// Redis bus options extension.
1214
/// </summary>
1315
internal sealed class RedisBusOptionsExtension : IEasyCachingOptionsExtension
1416
{
17+
/// <summary>
18+
/// The name.
19+
/// </summary>
20+
private readonly string _name;
21+
1522
/// <summary>
1623
/// The configure.
1724
/// </summary>
@@ -20,9 +27,11 @@ internal sealed class RedisBusOptionsExtension : IEasyCachingOptionsExtension
2027
/// <summary>
2128
/// Initializes a new instance of the <see cref="T:EasyCaching.Bus.Redis.RedisBusOptionsExtension"/> class.
2229
/// </summary>
30+
/// <param name="name">Name.</param>
2331
/// <param name="configure">Configure.</param>
24-
public RedisBusOptionsExtension(Action<RedisBusOptions> configure)
25-
{
32+
public RedisBusOptionsExtension(string name, Action<RedisBusOptions> configure)
33+
{
34+
this._name = name;
2635
this.configure = configure;
2736
}
2837

@@ -33,11 +42,25 @@ public RedisBusOptionsExtension(Action<RedisBusOptions> configure)
3342
public void AddServices(IServiceCollection services)
3443
{
3544
services.AddOptions();
36-
services.Configure(configure);
45+
services.Configure(_name, configure);
3746

3847
services.TryAddSingleton<IEasyCachingSerializer, DefaultBinaryFormatterSerializer>();
39-
services.TryAddSingleton<IRedisSubscriberProvider, RedisSubscriberProvider>();
40-
services.AddSingleton<IEasyCachingBus, DefaultRedisBus>();
48+
services.AddSingleton<IRedisSubscriberProvider, RedisSubscriberProvider>(x =>
49+
{
50+
var optionsMon = x.GetRequiredService<IOptionsMonitor<RedisBusOptions>>();
51+
var options = optionsMon.Get(_name);
52+
return new RedisSubscriberProvider(_name, options);
53+
});
54+
55+
services.AddSingleton<IEasyCachingBus, DefaultRedisBus>(x =>
56+
{
57+
var subProviders = x.GetServices<IRedisSubscriberProvider>();
58+
var serializers = x.GetServices<IEasyCachingSerializer>();
59+
var optionsMon = x.GetRequiredService<IOptionsMonitor<RedisBusOptions>>();
60+
var options = optionsMon.Get(_name);
61+
var factory = x.GetService<ILoggerFactory>();
62+
return new DefaultRedisBus(_name, subProviders, options, serializers);
63+
});
4164
}
4265
}
4366
}

bus/EasyCaching.Bus.Redis/Configurations/RedisSubscriberProvider.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
namespace EasyCaching.Bus.Redis
22
{
3-
using Microsoft.Extensions.Options;
43
using StackExchange.Redis;
54
using System;
65

@@ -9,6 +8,8 @@
98
/// </summary>
109
internal class RedisSubscriberProvider : IRedisSubscriberProvider
1110
{
11+
private readonly string _name;
12+
1213
/// <summary>
1314
/// The options.
1415
/// </summary>
@@ -22,19 +23,23 @@ internal class RedisSubscriberProvider : IRedisSubscriberProvider
2223
/// <summary>
2324
/// Initializes a new instance of the <see cref="T:EasyCaching.Bus.Redis.RedisSubscriberProvider"/> class.
2425
/// </summary>
26+
/// <param name="name">name.</param>
2527
/// <param name="options">Options.</param>
26-
public RedisSubscriberProvider(IOptions<RedisBusOptions> options)
28+
public RedisSubscriberProvider(string name, RedisBusOptions options)
2729
{
28-
_options = options.Value;
30+
_name = name;
31+
_options = options;
2932
_connectionMultiplexer = new Lazy<ConnectionMultiplexer>(CreateConnectionMultiplexer);
3033
}
3134

35+
public string SubscriberName => _name;
36+
3237
/// <summary>
3338
/// Gets the database connection.
3439
/// </summary>
3540
public ISubscriber GetSubscriber()
3641
{
37-
return _connectionMultiplexer.Value.GetSubscriber();
42+
return _connectionMultiplexer.Value.GetSubscriber();
3843
}
3944

4045
/// <summary>

bus/EasyCaching.Bus.Redis/DefaultRedisBus.cs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
using EasyCaching.Core.Serialization;
66
using StackExchange.Redis;
77
using System;
8+
using System.Collections.Generic;
9+
using System.Linq;
810
using System.Threading;
911
using System.Threading.Tasks;
1012

@@ -28,17 +30,30 @@ public class DefaultRedisBus : EasyCachingAbstractBus
2830
/// </summary>
2931
private readonly IEasyCachingSerializer _serializer;
3032

33+
/// <summary>
34+
/// The name.
35+
/// </summary>
36+
private readonly string _name;
37+
3138
/// <summary>
3239
/// Initializes a new instance of the <see cref="T:EasyCaching.Bus.Redis.DefaultRedisBus"/> class.
3340
/// </summary>
34-
/// <param name="subscriberProvider">Subscriber provider.</param>
35-
/// <param name="serializer">Serializer.</param>
41+
/// <param name="name">Name.</param>
42+
/// <param name="subscriberProviders">Subscriber provider.</param>
43+
/// <param name="busOptions">bus Options.</param>
44+
/// <param name="serializers">Serializers.</param>
3645
public DefaultRedisBus(
37-
IRedisSubscriberProvider subscriberProvider,
38-
IEasyCachingSerializer serializer)
46+
string name
47+
, IEnumerable<IRedisSubscriberProvider> subscriberProviders
48+
, RedisBusOptions busOptions
49+
, IEnumerable<IEasyCachingSerializer> serializers)
3950
{
40-
this._subscriberProvider = subscriberProvider;
41-
this._serializer = serializer;
51+
this._name = name;
52+
this.BusName = name;
53+
this._subscriberProvider = subscriberProviders.Single(x => x.SubscriberName.Equals(name));
54+
this._serializer = !string.IsNullOrWhiteSpace(busOptions.SerializerName)
55+
? serializers.Single(x => x.Name.Equals(busOptions.SerializerName))
56+
: serializers.Single(x => x.Name.Equals(EasyCachingConstValue.DefaultSerializerName));
4257
this._subscriber = _subscriberProvider.GetSubscriber();
4358
}
4459

sample/EasyCaching.Demo.ConsoleApp/Program.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ static void Main(string[] args)
4242
IServiceProvider serviceProvider = services.BuildServiceProvider();
4343
var factory = serviceProvider.GetService<IEasyCachingProviderFactory>();
4444

45-
//var reidsCache = factory.GetCachingProvider("r1");
45+
//var redisCache = factory.GetCachingProvider("r1");
4646

47-
//reidsCache.Set<Product>("rkey", new Product() { Name = "test" }, TimeSpan.FromSeconds(20));
47+
//redisCache.Set<Product>("rkey", new Product() { Name = "test" }, TimeSpan.FromSeconds(20));
4848

49-
//var reidsVal = reidsCache.Get<Product>("rkey");
49+
//var redisVal = redisCache.Get<Product>("rkey");
5050

51-
//Console.WriteLine($"redis cache get value, {reidsVal.HasValue} {reidsVal.IsNull} {reidsVal.Value} ");
51+
//Console.WriteLine($"redis cache get value, {redisVal.HasValue} {redisVal.IsNull} {redisVal.Value} ");
5252

5353

5454
var mCache = factory.GetCachingProvider("m1");

sample/EasyCaching.Demo.Providers/EasyCaching.Demo.Providers.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
<ProjectReference Include="..\..\src\EasyCaching.HybridCache\EasyCaching.HybridCache.csproj" />
1313
<ProjectReference Include="..\..\serialization\EasyCaching.Serialization.MessagePack\EasyCaching.Serialization.MessagePack.csproj" />
1414
<ProjectReference Include="..\..\src\EasyCaching.Core\EasyCaching.Core.csproj" />
15+
<ProjectReference Include="..\..\bus\EasyCaching.Bus.CSRedis\EasyCaching.Bus.CSRedis.csproj" />
16+
<ProjectReference Include="..\..\bus\EasyCaching.Bus.RabbitMQ\EasyCaching.Bus.RabbitMQ.csproj" />
1517
<ProjectReference Include="..\..\bus\EasyCaching.Bus.Redis\EasyCaching.Bus.Redis.csproj" />
1618
</ItemGroup>
1719
<ItemGroup>

sample/EasyCaching.Demo.Providers/Startup.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public void ConfigureServices(IServiceCollection services)
3535
option.UseRedis(config =>
3636
{
3737
config.DBConfig.Endpoints.Add(new ServerEndPoint("127.0.0.1", 6379));
38+
config.DBConfig.SyncTimeout = 10000;
39+
config.DBConfig.AsyncTimeout = 10000;
3840
config.SerializerName = "mymsgpack";
3941
}, "redis1")
4042
.WithMessagePack("mymsgpack")//with messagepack serialization
@@ -59,7 +61,6 @@ public void ConfigureServices(IServiceCollection services)
5961
});
6062

6163
option.UseMemcached(Configuration);
62-
6364
});
6465
}
6566

serialization/EasyCaching.Serialization.Json/DefaultJsonSerializer.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ public class DefaultJsonSerializer : IEasyCachingSerializer
1717
/// </summary>
1818
private readonly JsonSerializer jsonSerializer;
1919

20+
/// <summary>
21+
/// default utf-8 encoding
22+
/// </summary>
23+
private static readonly UTF8Encoding s_utf8Encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true);
24+
2025
/// <summary>
2126
/// The name.
2227
/// </summary>
@@ -48,7 +53,7 @@ public DefaultJsonSerializer(string name, JsonSerializerSettings serializerSetti
4853
public T Deserialize<T>(byte[] bytes)
4954
{
5055
using (var ms = new MemoryStream(bytes))
51-
using (var sr = new StreamReader(ms, Encoding.UTF8))
56+
using (var sr = new StreamReader(ms, s_utf8Encoding))
5257
using (var jtr = new JsonTextReader(sr))
5358
{
5459
return jsonSerializer.Deserialize<T>(jtr);
@@ -64,7 +69,7 @@ public T Deserialize<T>(byte[] bytes)
6469
public object Deserialize(byte[] bytes, Type type)
6570
{
6671
using (var ms = new MemoryStream(bytes))
67-
using (var sr = new StreamReader(ms, Encoding.UTF8))
72+
using (var sr = new StreamReader(ms, s_utf8Encoding))
6873
using (var jtr = new JsonTextReader(sr))
6974
{
7075
return jsonSerializer.Deserialize(jtr, type);
@@ -81,7 +86,7 @@ public byte[] Serialize<T>(T value)
8186
{
8287
using (var ms = new MemoryStream())
8388
{
84-
using (var sr = new StreamWriter(ms, Encoding.UTF8))
89+
using (var sr = new StreamWriter(ms, s_utf8Encoding))
8590
using (var jtr = new JsonTextWriter(sr))
8691
{
8792
jsonSerializer.Serialize(jtr, value);

0 commit comments

Comments
 (0)