写配置文件加锁
continuous-integration/drone/push Build is running Details

Uat_IRC_Net10
hang 2026-07-06 11:31:35 +08:00
parent f4c3f685eb
commit fa84171da4
1 changed files with 67 additions and 50 deletions

View File

@ -16,7 +16,7 @@ using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Common; namespace IRaCIS.Core.Application.Service.Common;
[ApiExplorerSettings(GroupName = "Common")] [ApiExplorerSettings(GroupName = "Common")]
public class DeployConfigService(IMapper _mapper, IUserInfo _userInfo, IWebHostEnvironment _hostEnvironment, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService public class DeployConfigService(IMapper _mapper, IDistributedLockProvider _distributedLockProvider, IUserInfo _userInfo, IWebHostEnvironment _hostEnvironment, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService
{ {
/// <summary> /// <summary>
@ -39,6 +39,14 @@ public class DeployConfigService(IMapper _mapper, IUserInfo _userInfo, IWebHostE
{ {
var path = $"appsettings.{_hostEnvironment.EnvironmentName}.json"; var path = $"appsettings.{_hostEnvironment.EnvironmentName}.json";
var @lock = _distributedLockProvider.CreateLock("WriteConfigFile");
using (await @lock.AcquireAsync())
{
string text = System.IO.File.ReadAllText(path); string text = System.IO.File.ReadAllText(path);
// 修改 // 修改
@ -65,6 +73,7 @@ public class DeployConfigService(IMapper _mapper, IUserInfo _userInfo, IWebHostE
// 重新写入appsettings.json // 重新写入appsettings.json
string result = obj.ToString(); string result = obj.ToString();
System.IO.File.WriteAllText(path, result); System.IO.File.WriteAllText(path, result);
}
return ResponseOutput.Ok(); return ResponseOutput.Ok();
@ -91,6 +100,13 @@ public class DeployConfigService(IMapper _mapper, IUserInfo _userInfo, IWebHostE
{ {
var path = $"appsettings.{_hostEnvironment.EnvironmentName}.json"; var path = $"appsettings.{_hostEnvironment.EnvironmentName}.json";
var @lock = _distributedLockProvider.CreateLock("WriteConfigFile");
using (await @lock.AcquireAsync())
{
string text = System.IO.File.ReadAllText(path); string text = System.IO.File.ReadAllText(path);
// 修改 // 修改
@ -123,6 +139,7 @@ public class DeployConfigService(IMapper _mapper, IUserInfo _userInfo, IWebHostE
string result = obj.ToString(); string result = obj.ToString();
System.IO.File.WriteAllText(path, result); System.IO.File.WriteAllText(path, result);
}
return ResponseOutput.Ok(); return ResponseOutput.Ok();
} }