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<string>("DistributedCache:Configuration");
|
var connection = ConnectionMultiplexer.Connect(configuration);
|
var database = connection.GetDatabase();
|
services.AddSingleton<IDistributedLockProvider>(it => new RedisDistributedSynchronizationProvider(database));
|
}
|
}
|
}
|