Browse Source

update use of GrainObserverManager

JasonWang 6 years ago
parent
commit
c1ea68b158

+ 5 - 5
src/MineCase.Gateway/MineCase.Gateway.csproj

@@ -34,13 +34,13 @@
 
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" />
-    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.0.0" />
-    <PackageReference Include="Microsoft.Extensions.ObjectPool" Version="2.0.0" />
+    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
+    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
+    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.2.0" />
+    <PackageReference Include="Microsoft.Extensions.ObjectPool" Version="2.2.0" />
     <PackageReference Include="Microsoft.Orleans.Client" Version="2.3.4" />
     <PackageReference Include="Orleans.Providers.MongoDB" Version="2.4.0" />
-    <PackageReference Include="Polly" Version="5.5.0" />
+    <PackageReference Include="Polly" Version="7.1.0" />
     <PackageReference Include="sharpcompress" Version="0.23.0" />
     <PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0006" />
   </ItemGroup>

+ 2 - 1
src/MineCase.Gateway/Network/ClientSession.cs

@@ -47,13 +47,14 @@ namespace MineCase.Gateway.Network
             using (_remoteStream = _tcpClient.GetStream())
             {
                 _clientboundPacketObserverRef = await _grainFactory.CreateObjectReference<IClientboundPacketObserver>(_outcomingPacketObserver);
-                await _grainFactory.GetGrain<IClientboundPacketSink>(_sessionId).Subscribe(_clientboundPacketObserverRef);
                 try
                 {
                     while (!cancellationToken.IsCancellationRequested &&
                         !_outcomingPacketDispatcher.Completion.IsCompleted)
                     {
                         await DispatchIncomingPacket();
+                        // renew subscribe
+                        await _grainFactory.GetGrain<IClientboundPacketSink>(_sessionId).Subscribe(_clientboundPacketObserverRef);
                     }
                 }
                 catch (EndOfStreamException)

+ 2 - 0
src/MineCase.Gateway/Program.cs

@@ -65,6 +65,8 @@ namespace MineCase.Gateway
                     .ConfigureServices(ConfigureServices)
                     .ConfigureLogging(ConfigureLogging)
                     .ConfigureApplicationParts(ConfigureApplicationParts)
+                    .AddSimpleMessageStreamProvider("JobsProvider")
+                    .AddSimpleMessageStreamProvider("TransientProvider")
                     .UseMongoDBClustering(options=>
                     {
                         options.ConnectionString = Configuration.GetSection("persistenceOptions")["connectionString"];

+ 3 - 3
src/MineCase.Server.Grains/MineCase.Server.Grains.csproj

@@ -34,10 +34,10 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="Autofac" Version="4.6.1" />
+    <PackageReference Include="Autofac" Version="4.9.2" />
     <PackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="2.2.0" />
     <PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="2.2.0" />
-    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0" />
+    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
     <PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="1.2.2" />
     <PackageReference Include="Microsoft.Orleans.CodeGenerator.MSBuild" Version="2.3.4">
       <PrivateAssets>all</PrivateAssets>
@@ -48,7 +48,7 @@
     <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="All" />
     <PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
     <PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
-    <PackageReference Include="MongoDB.Driver" Version="2.4.4" />
+    <PackageReference Include="MongoDB.Driver" Version="2.8.1" />
     <PackageReference Include="System.Threading.Tasks.Dataflow" Version="4.9.0" />
   </ItemGroup>
 

+ 1 - 0
src/MineCase.Server.Grains/Network/ClientboundPacketSinkGrain.cs

@@ -24,6 +24,7 @@ namespace MineCase.Server.Network
         public override Task OnActivateAsync()
         {
             _subsManager = new Grains.GrainObserverManager<IClientboundPacketObserver>();
+            _subsManager.ExpirationDuration = new TimeSpan(0, 0, 20);
             return base.OnActivateAsync();
         }
 

+ 11 - 1
src/MineCase.Server/Program.cs

@@ -42,6 +42,8 @@ namespace MineCase.Server
                     options.PerformDeadlockDetection = true;
                 })
                 .ConfigureEndpoints(siloPort: 11111, gatewayPort: 30000)
+                .AddSimpleMessageStreamProvider("JobsProvider")
+                .AddSimpleMessageStreamProvider("TransientProvider")
                 .UseMongoDBReminders(options =>
                 {
                     options.ConnectionString = Configuration.GetSection("persistenceOptions")["connectionString"];
@@ -54,7 +56,15 @@ namespace MineCase.Server
                 .ConfigureApplicationParts(ConfigureApplicationParts)
                 .UseDashboard(options => { })
                 .UseServiceProviderFactory(ConfigureServices);
-            
+
+            MongoDBSiloExtensions.AddMongoDBGrainStorageAsDefault(builder, options => {
+                options.ConnectionString = Configuration.GetSection("persistenceOptions")["connectionString"];
+            });
+
+            MongoDBSiloExtensions.AddMongoDBGrainStorage(builder, "PubSubStore", options => {
+                options.ConnectionString = Configuration.GetSection("persistenceOptions")["connectionString"];
+            });
+
             // ConfigureApplicationParts(builder);
             _siloHost = builder.Build();
             await StartAsync();