You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
55 lines
2.0 KiB
using EShopOnAbp.AdministrationService.EntityFrameworkCore;
|
|
using EShopOnAbp.Shared.Hosting.AspNetCore;
|
|
using Medallion.Threading;
|
|
using Medallion.Threading.Redis;
|
|
using Microsoft.AspNetCore.DataProtection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using StackExchange.Redis;
|
|
using Volo.Abp.AspNetCore.MultiTenancy;
|
|
using Volo.Abp.BackgroundJobs.RabbitMQ;
|
|
using Volo.Abp.Caching;
|
|
using Volo.Abp.Caching.StackExchangeRedis;
|
|
using Volo.Abp.DistributedLocking;
|
|
using Volo.Abp.EventBus.RabbitMq;
|
|
using Volo.Abp.Modularity;
|
|
using Volo.Abp.MultiTenancy;
|
|
|
|
namespace EShopOnAbp.Shared.Hosting.Microservices;
|
|
|
|
[DependsOn(
|
|
typeof(EShopOnAbpSharedHostingAspNetCoreModule),
|
|
typeof(AbpBackgroundJobsRabbitMqModule),
|
|
typeof(AbpAspNetCoreMultiTenancyModule),
|
|
typeof(AbpEventBusRabbitMqModule),
|
|
typeof(AbpCachingStackExchangeRedisModule),
|
|
typeof(AdministrationServiceEntityFrameworkCoreModule),
|
|
typeof(AbpDistributedLockingModule)
|
|
)]
|
|
public class EShopOnAbpSharedHostingMicroservicesModule : AbpModule
|
|
{
|
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
|
{
|
|
var configuration = context.Services.GetConfiguration();
|
|
|
|
Configure<AbpMultiTenancyOptions>(options =>
|
|
{
|
|
options.IsEnabled = true;
|
|
});
|
|
|
|
Configure<AbpDistributedCacheOptions>(options =>
|
|
{
|
|
options.KeyPrefix = "EShopOnAbp:";
|
|
});
|
|
|
|
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
|
|
context.Services
|
|
.AddDataProtection()
|
|
.PersistKeysToStackExchangeRedis(redis, "EShopOnAbp-Protection-Keys");
|
|
|
|
context.Services.AddSingleton<IDistributedLockProvider>(sp =>
|
|
{
|
|
var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
|
|
return new RedisDistributedSynchronizationProvider(connection.GetDatabase());
|
|
});
|
|
}
|
|
}
|