diff --git a/Expedience.Api/Controllers/ExpedienceController.cs b/Expedience.Api/Controllers/ExpedienceController.cs index 633caca..5dc285a 100644 --- a/Expedience.Api/Controllers/ExpedienceController.cs +++ b/Expedience.Api/Controllers/ExpedienceController.cs @@ -62,7 +62,7 @@ namespace Expedience.Api.Controllers using var dbContext = scope.ServiceProvider.GetRequiredService(); var lockKey = $"{worldId}-{userHash}"; - if (_distributedLock.AcquireLock(lockKey, TimeSpan.FromSeconds(10))) + if (_distributedLock.AcquireLock(lockKey, TimeSpan.FromSeconds(10), TimeSpan.FromMinutes(4))) { try { diff --git a/Expedience.Api/Program.cs b/Expedience.Api/Program.cs index 246104e..8b50dbe 100644 --- a/Expedience.Api/Program.cs +++ b/Expedience.Api/Program.cs @@ -36,7 +36,7 @@ builder.Services.AddMassTransit(opt => builder.Services.AddEnyimMemcached(); -builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddSingleton(); var app = builder.Build(); diff --git a/Expedience.Infrastructure/Concurrency/IDistributedLock.cs b/Expedience.Infrastructure/Concurrency/IDistributedLock.cs index b2cfe20..ab4f0a0 100644 --- a/Expedience.Infrastructure/Concurrency/IDistributedLock.cs +++ b/Expedience.Infrastructure/Concurrency/IDistributedLock.cs @@ -7,11 +7,11 @@ namespace Expedience.Infrastructure.Concurrency { public interface IDistributedLock { - bool AcquireLock(string lockKey, TimeSpan timeout); + bool AcquireLock(string lockKey, TimeSpan timeout, TimeSpan lockExpiration); void ReleaseLock(string lockKey); } - public class DistributedLock + public class DistributedLock : IDistributedLock { private readonly IMemcachedClient _memcachedClient;