分布式锁 sqlserver 05 项目迁移修改
This commit is contained in:
@@ -3,7 +3,7 @@ using IRaCIS.Application.Contracts;
|
||||
using IRaCIS.Core.Infra.EFCore;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using Nito.AsyncEx;
|
||||
using Medallion.Threading;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
@@ -12,13 +12,13 @@ namespace IRaCIS.Application.Services
|
||||
{
|
||||
private readonly IRepository<Site> _siteRepository;
|
||||
private readonly IRepository<TrialSiteUser> _trialSiteUserRepository;
|
||||
private readonly IDistributedLockProvider _distributedLockProvider;
|
||||
|
||||
private readonly AsyncLock _mutex = new AsyncLock();
|
||||
|
||||
public SiteService(IRepository<Site> siteRepository, IRepository<TrialSiteUser> trialSiteUserRepository)
|
||||
public SiteService(IRepository<Site> siteRepository, IRepository<TrialSiteUser> trialSiteUserRepository, IDistributedLockProvider distributedLockProvider)
|
||||
{
|
||||
_siteRepository = siteRepository;
|
||||
this._trialSiteUserRepository = trialSiteUserRepository;
|
||||
_trialSiteUserRepository = trialSiteUserRepository;
|
||||
_distributedLockProvider = distributedLockProvider;
|
||||
}
|
||||
|
||||
/// <summary> 分页获取研究中心列表 </summary>
|
||||
@@ -58,7 +58,9 @@ namespace IRaCIS.Application.Services
|
||||
VerifyMsg = _localizer["Site_DupName"]
|
||||
};
|
||||
|
||||
using (await _mutex.LockAsync())
|
||||
var @lock = _distributedLockProvider.CreateLock($"SiteAdd");
|
||||
|
||||
using (await @lock.AcquireAsync())
|
||||
{
|
||||
if (siteCommand.Id == null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user