Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

丁松杰 / Pole

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Commit 88a47a80 authored 5 years ago by dingsongjie's avatar dingsongjie
Browse files
Options
  • Browse Files
  • Download
  • Email Patches
  • Plain Diff

添加 读取模块 模块

parent 4a976d46 master … v1.0.0
Hide whitespace changes
Inline Side-by-side
Showing with 79 additions and 0 deletions
  • samples/apis/Backet.Api/Backet.Api.csproj
  • samples/apis/Backet.Api/Program.cs
  • src/Pole.Core/Extensions/PoleServiceCollectionExtensions.cs
  • src/Pole.Core/Query/IQueries.cs
  • src/Pole.Core/Query/IQueryRegister.cs
  • src/Pole.Core/Query/QueryRegister.cs
samples/apis/Backet.Api/Backet.Api.csproj
View file @ 88a47a80
......@@ -32,6 +32,7 @@
<PackageReference Include="Microsoft.Orleans.OrleansRuntime" Version="3.1.0" />
<PackageReference Include="Microsoft.Orleans.Server" Version="3.1.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" />
<PackageReference Include="OrleansDashboard" Version="3.0.8" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Pole.Core\Pole.Core.csproj" />
......
This diff is collapsed. Click to expand it.
samples/apis/Backet.Api/Program.cs
View file @ 88a47a80
......@@ -25,12 +25,14 @@ namespace Backet.Api
Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.ConfigureApplicationParts(parts => parts.AddFromApplicationBaseDirectory());
siloBuilder.UseLocalhostClustering();
siloBuilder.AddEfGrainStorage<BacketDbContext>("ef");
siloBuilder.Configure<GrainCollectionOptions>(options =>
{
options.CollectionAge = TimeSpan.FromMinutes(2);
});
siloBuilder.UseDashboard(options => { });
})
.ConfigureWebHostDefaults(webBuilder =>
{
......
This diff is collapsed. Click to expand it.
src/Pole.Core/Extensions/PoleServiceCollectionExtensions.cs
View file @ 88a47a80
......@@ -4,6 +4,7 @@ using Pole.Core.Channels;
using Pole.Core.EventBus;
using Pole.Core.Processor;
using Pole.Core.Processor.Server;
using Pole.Core.Query;
using Pole.Core.Serialization;
using Pole.Core.UnitOfWork;
using Pole.Core.Utils;
......@@ -31,10 +32,14 @@ namespace Microsoft.Extensions.DependencyInjection
services.AddSingleton<ISerializer, DefaultJsonSerializer>();
services.AddSingleton<IGeneratorIdSolver, InstanceIPV4_16IdGeneratorIdSolver>();
services.AddSingleton<IObserverUnitContainer, ObserverUnitContainer>();
services.AddSingleton<IQueryRegister, QueryRegister>();
using (var serviceProvider = services.BuildServiceProvider())
{
var generatorIdSolver = serviceProvider.GetService<IGeneratorIdSolver>();
services.AddSingleton(typeof(ISnowflakeIdGenerator), factory => new SnowflakeIdGenerator(new DateTime(2020, 1, 1), 16, generatorIdSolver.GetGeneratorId()));
var queryRegister = serviceProvider.GetService<IQueryRegister>();
queryRegister.Register(services, ServiceLifetime.Scoped);
}
services.AddSingleton<IProcessor, PendingMessageRetryProcessor>();
......
This diff is collapsed. Click to expand it.
src/Pole.Core/Query/IQueries.cs 0 → 100644
View file @ 88a47a80
using System;
using System.Collections.Generic;
using System.Text;
namespace Pole.Core.Query
{
public interface IQueries
{
}
}
This diff is collapsed. Click to expand it.
src/Pole.Core/Query/IQueryRegister.cs 0 → 100644
View file @ 88a47a80
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace Pole.Core.Query
{
public interface IQueryRegister
{
Task Register(IServiceCollection serviceCollection, ServiceLifetime serviceLifetime);
}
}
This diff is collapsed. Click to expand it.
src/Pole.Core/Query/QueryRegister.cs 0 → 100644
View file @ 88a47a80
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Pole.Core.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Pole.Core.Query
{
class QueryRegister : IQueryRegister
{
private readonly IServiceProvider serviceProvider;
public QueryRegister(IServiceProvider serviceProvider)
{
this.serviceProvider = serviceProvider;
}
public Task Register(IServiceCollection serviceCollection, ServiceLifetime serviceLifetime)
{
foreach (var assembly in AssemblyHelper.GetAssemblies(serviceProvider.GetService<ILogger<QueryRegister>>()))
{
var implements = assembly.GetTypes().Where(m => typeof(IQueries).IsAssignableFrom(m) && m.IsClass && !m.IsAbstract);
foreach (var implement in implements)
{
var services = implement.GetInterfaces();
foreach (var queriesService in services)
{
if (serviceLifetime == ServiceLifetime.Scoped)
{
serviceCollection.AddScoped(queriesService, implement);
}
else if (serviceLifetime == ServiceLifetime.Singleton)
{
serviceCollection.AddSingleton(queriesService, implement);
}
else
{
serviceCollection.AddTransient(queriesService, implement);
}
}
}
}
return Task.CompletedTask;
}
}
}
This diff is collapsed. Click to expand it.
  • Write
  • Preview
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment