diff --git a/Pole.sln b/Pole.sln index 2e9f4b0..7a7534d 100644 --- a/Pole.sln +++ b/Pole.sln @@ -39,6 +39,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.EventStorage.PostgreSq EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pole.Orleans.Provider.EntityframeworkCore", "src\Pole.Orleans.Provider.EntityframeworkCore\Pole.Orleans.Provider.EntityframeworkCore.csproj", "{0DA75F4A-BF47-4B52-B932-48BB6A709934}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pole.Samples.Backet.Api", "test\Pole.Samples.Backet.Api\Pole.Samples.Backet.Api.csproj", "{FB3D2F52-123A-4606-B682-9159BD7913AE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -93,6 +95,10 @@ Global {0DA75F4A-BF47-4B52-B932-48BB6A709934}.Debug|Any CPU.Build.0 = Debug|Any CPU {0DA75F4A-BF47-4B52-B932-48BB6A709934}.Release|Any CPU.ActiveCfg = Release|Any CPU {0DA75F4A-BF47-4B52-B932-48BB6A709934}.Release|Any CPU.Build.0 = Release|Any CPU + {FB3D2F52-123A-4606-B682-9159BD7913AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB3D2F52-123A-4606-B682-9159BD7913AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB3D2F52-123A-4606-B682-9159BD7913AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB3D2F52-123A-4606-B682-9159BD7913AE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -113,6 +119,7 @@ Global {23EA8735-DB2E-4599-8902-8FCBCBE4799C} = {655E719B-4A3E-467C-A541-E0770AB81DE1} {548EFDBB-252F-48DD-87F4-58ABFBD4963C} = {9932C965-8B38-4F70-9E43-86DC56860E2B} {0DA75F4A-BF47-4B52-B932-48BB6A709934} = {9932C965-8B38-4F70-9E43-86DC56860E2B} + {FB3D2F52-123A-4606-B682-9159BD7913AE} = {655E719B-4A3E-467C-A541-E0770AB81DE1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DB0775A3-F293-4043-ADB7-72BAC081E87E} diff --git a/samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs b/samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs index 072b9e4..db48cce 100644 --- a/samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs +++ b/samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs @@ -10,14 +10,14 @@ namespace Backet.Api.EventHandlers { public class ToNoticeBacketCreatedEventHandler : PoleEventHandler, IToNoticeBacketCreatedEventHandler { - public Task BulkEventsHandle(List @event) + public async Task BulkEventsHandle(List @event) { - return Task.CompletedTask; + await Task.Delay(1500); } - public Task EventHandle(BacketCreatedEvent @event) + public async Task EventHandle(BacketCreatedEvent @event) { - return Task.CompletedTask; + await Task.Delay(1200); } } } diff --git a/samples/apis/Backet.Api/Properties/launchSettings.json b/samples/apis/Backet.Api/Properties/launchSettings.json index 7584100..fe3ba79 100644 --- a/samples/apis/Backet.Api/Properties/launchSettings.json +++ b/samples/apis/Backet.Api/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "Backet.Api": { "commandName": "Project", - "applicationUrl": "http://localhost:5001", + "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/samples/apis/Backet.Api/appsettings.json b/samples/apis/Backet.Api/appsettings.json index 13020d9..a4b7b43 100644 --- a/samples/apis/Backet.Api/appsettings.json +++ b/samples/apis/Backet.Api/appsettings.json @@ -8,13 +8,13 @@ } }, "postgres": { - "write": "Server=192.168.0.41;Port=5432;Username=postgres;Password=comteck2020!@#;Database=Pole-Backet;Enlist=True;Timeout=0;Command Timeout=600;Pooling=false;MinPoolSize=20;MaxPoolSize=500;" + "write": "Server=192.168.0.248;Port=5432;Username=postgres;Password=comteck2020!@#;Database=Pole-Backet;Enlist=True;Timeout=0;Command Timeout=600;Pooling=false;MinPoolSize=20;MaxPoolSize=500;" }, "ServiceName": "Backet", "RabbitmqConfig": { - "HostAddress": "192.168.0.41", - "HostUserName": "test", - "HostPassword": "test" + "HostAddress": "192.168.0.248", + "HostUserName": "comteck", + "HostPassword": "comteck3030" } //"Kestrel": { // "EndpointDefaults": { diff --git a/src/Pole.Core/Serialization/EventTypeFinder.cs b/src/Pole.Core/Serialization/EventTypeFinder.cs index 079ee66..4871cc2 100644 --- a/src/Pole.Core/Serialization/EventTypeFinder.cs +++ b/src/Pole.Core/Serialization/EventTypeFinder.cs @@ -30,9 +30,9 @@ namespace Pole.Core.Serialization { eventCode = attribute.EventName; } - typeDict.TryAdd(type, type.FullName); + typeDict.TryAdd(type, eventCode); - if (!codeDict.TryAdd(type.FullName, type)) + if (!codeDict.TryAdd(eventCode, type)) { throw new TypeCodeRepeatedException(type.FullName, type.FullName); } diff --git a/src/Pole.EventBus.Rabbitmq/Consumer/ConsumerRunner.cs b/src/Pole.EventBus.Rabbitmq/Consumer/ConsumerRunner.cs index 854cc5c..1b2083a 100644 --- a/src/Pole.EventBus.Rabbitmq/Consumer/ConsumerRunner.cs +++ b/src/Pole.EventBus.Rabbitmq/Consumer/ConsumerRunner.cs @@ -121,6 +121,7 @@ namespace Pole.EventBus.RabbitMQ private async Task ProcessComsumerErrors(BasicDeliverEventArgs ea, Exception exception) { + // todo 这里需要添加断路器 防止超量的 Task.Delay if (ea.BasicProperties.Headers.TryGetValue(Consts.ConsumerRetryTimesStr, out object retryTimesObj)) { var retryTimesStr = Encoding.UTF8.GetString((byte[])retryTimesObj); diff --git a/test/Pole.Core.Test/Pole.Core.Test.csproj b/test/Pole.Core.Test/Pole.Core.Test.csproj index 77049be..a2d6e2d 100644 --- a/test/Pole.Core.Test/Pole.Core.Test.csproj +++ b/test/Pole.Core.Test/Pole.Core.Test.csproj @@ -1,4 +1,4 @@ - + netcoreapp3.1 diff --git a/test/Pole.Samples.Backet.Api/Benchmarks/GrainWithEntityframeworkCoreAndPgTest.cs b/test/Pole.Samples.Backet.Api/Benchmarks/GrainWithEntityframeworkCoreAndPgTest.cs new file mode 100644 index 0000000..eeeecfd --- /dev/null +++ b/test/Pole.Samples.Backet.Api/Benchmarks/GrainWithEntityframeworkCoreAndPgTest.cs @@ -0,0 +1,32 @@ +using Backet.Api.Infrastructure; +using BenchmarkDotNet.Attributes; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Pole.Samples.Backet.Api.Benchmarks +{ + public class GrainWithEntityframeworkCoreAndPgTest + { + IServiceProvider serviceProvider; + public GrainWithEntityframeworkCoreAndPgTest() + { + var services = new ServiceCollection(); + services.AddDbContextPool(options => options.UseNpgsql("Server=192.168.0.248;Port=5432;Username=postgres;Password=comteck2020!@#;Database=Pole-Backet;Enlist=True;Timeout=0;Command Timeout=600;Pooling=false;MinPoolSize=20;MaxPoolSize=500;")); + serviceProvider = services.BuildServiceProvider(); + } + [Benchmark] + public async Task SingleOrDefaultAsync() + { + using (var scope = serviceProvider.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + + var entity = await context.Backets.Include(box => box.BacketItems).SingleOrDefaultAsync(m => m.Id == "222"); + } + } + } +} diff --git a/test/Pole.Samples.Backet.Api/Pole.Samples.Backet.Api.csproj b/test/Pole.Samples.Backet.Api/Pole.Samples.Backet.Api.csproj new file mode 100644 index 0000000..69bfcfb --- /dev/null +++ b/test/Pole.Samples.Backet.Api/Pole.Samples.Backet.Api.csproj @@ -0,0 +1,19 @@ + + + + netcoreapp3.1 + + Exe + + + + + + + + + + + + + diff --git a/test/Pole.Samples.Backet.Api/Program.cs b/test/Pole.Samples.Backet.Api/Program.cs new file mode 100644 index 0000000..9280618 --- /dev/null +++ b/test/Pole.Samples.Backet.Api/Program.cs @@ -0,0 +1,21 @@ +using BenchmarkDotNet.Reports; +using BenchmarkDotNet.Running; +using Pole.Samples.Backet.Api.Benchmarks; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Pole.Samples.Backet.Api +{ + public class Program + { + public static async Task Main(string[] args) + { + //GrainWithEntityframeworkCoreAndPgTest grainWithEntityframeworkCoreAndPgTest = new GrainWithEntityframeworkCoreAndPgTest(); + //await grainWithEntityframeworkCoreAndPgTest.SingleOrDefaultAsync(); + Summary summary = BenchmarkRunner.Run(); + Console.ReadLine(); + } + } +}