perf: optimize authorization scoreline and workers
This commit is contained in:
@@ -49,6 +49,7 @@ using Tiku.Domain.Identity;
|
||||
using StackExchange.Redis;
|
||||
using MassTransit;
|
||||
using Tiku.Infrastructure.Messaging;
|
||||
using Tiku.Infrastructure.Observability;
|
||||
|
||||
namespace Tiku.Infrastructure;
|
||||
|
||||
@@ -63,13 +64,16 @@ public static class DependencyInjection
|
||||
|
||||
services.AddSingleton(_ => NpgsqlDataSource.Create(connectionString));
|
||||
services.AddScoped<TenantIsolationSaveChangesInterceptor>();
|
||||
services.AddSingleton<DatabasePerformanceInterceptor>();
|
||||
services.AddDbContext<TikuDbContext>((serviceProvider, options) =>
|
||||
{
|
||||
var dataSource = serviceProvider.GetRequiredService<NpgsqlDataSource>();
|
||||
options.UseNpgsql(dataSource, npgsql =>
|
||||
npgsql.MigrationsAssembly(typeof(TikuDbContext).Assembly.FullName));
|
||||
configureDatabase?.Invoke(options);
|
||||
options.AddInterceptors(serviceProvider.GetRequiredService<TenantIsolationSaveChangesInterceptor>());
|
||||
options.AddInterceptors(
|
||||
serviceProvider.GetRequiredService<TenantIsolationSaveChangesInterceptor>(),
|
||||
serviceProvider.GetRequiredService<DatabasePerformanceInterceptor>());
|
||||
});
|
||||
services.AddIdentityCore<User>(options =>
|
||||
{
|
||||
@@ -94,6 +98,7 @@ public static class DependencyInjection
|
||||
services.AddScoped<ITenantFrontendConfigService, TenantFrontendConfigService>();
|
||||
services.AddScoped<ITenantExternalProviderConfigService, TenantExternalProviderConfigService>();
|
||||
services.AddSingleton<ITenantRuntimeCacheInvalidator, TenantRuntimeCacheInvalidator>();
|
||||
services.AddSingleton<ITenantPublicCacheInvalidator, NullTenantPublicCacheInvalidator>();
|
||||
services.AddHttpClient<IDomainOwnershipVerifier, DnsDomainOwnershipVerifier>();
|
||||
services.AddHttpClient<IDomainGatewayProvisioner, HttpDomainGatewayProvisioner>();
|
||||
services.AddScoped<ITenantDomainLifecycleService, TenantDomainLifecycleService>();
|
||||
@@ -117,6 +122,7 @@ public static class DependencyInjection
|
||||
services.AddScoped<IPublicQuestionAccessPolicy, PublicQuestionAccessPolicy>();
|
||||
services.AddScoped<IQuestionReferenceService, QuestionReferenceService>();
|
||||
services.AddScoped<IProfileService, ProfileService>();
|
||||
services.AddScoped<ScorelineRecordQuery>();
|
||||
services.AddScoped<IScorelineQueryService, ScorelineQueryService>();
|
||||
services.AddScoped<IStudyContentQueryService, StudyContentQueryService>();
|
||||
services.AddScoped<IAssetQueryService, AssetQueryService>();
|
||||
@@ -141,6 +147,10 @@ public static class DependencyInjection
|
||||
services.AddOptions<SaasSubscriptionLifecycleOptions>();
|
||||
services.AddScoped<ITenantOnboardingService, TenantOnboardingService>();
|
||||
services.AddScoped<ICurrentAccessContext, CurrentAccessContext>();
|
||||
services.AddScoped<ITenantFeatureSnapshotProvider, TenantFeatureSnapshotProvider>();
|
||||
services.AddSingleton<TenantFeatureCacheInvalidator>();
|
||||
services.AddSingleton<ITenantFeatureCacheInvalidator>(provider => provider.GetRequiredService<TenantFeatureCacheInvalidator>());
|
||||
services.AddHostedService(provider => provider.GetRequiredService<TenantFeatureCacheInvalidator>());
|
||||
services.AddScoped<IFeatureAccessService, FeatureAccessService>();
|
||||
services.AddScoped<IFeatureUsageReconciliationService, FeatureUsageReconciliationService>();
|
||||
services.AddOptions<FeatureUsageReconciliationOptions>();
|
||||
|
||||
Reference in New Issue
Block a user