using Furion; using Medallion.Threading; using Medallion.Threading.Redis; using Microsoft.Extensions.DependencyInjection; using StackExchange.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ApiTools.Core { public sealed class DistributedLockServiceComponent : IServiceComponent { public void Load(IServiceCollection services, ComponentContext componentContext) { var configuration = App.GetConfig("DistributedCache:Configuration"); var connection = ConnectionMultiplexer.Connect(configuration); var database = connection.GetDatabase(); services.AddSingleton(it => new RedisDistributedSynchronizationProvider(database)); } } }