@ -62,7 +62,7 @@ namespace Expedience.Api.Controllers
using var dbContext = scope.ServiceProvider.GetRequiredService<ExpedienceContext>();
var lockKey = $"{worldId}-{userHash}";
if (_distributedLock.AcquireLock(lockKey, TimeSpan.FromSeconds(10)))
if (_distributedLock.AcquireLock(lockKey, TimeSpan.FromSeconds(10), TimeSpan.FromMinutes(4)))
{
try
@ -36,7 +36,7 @@ builder.Services.AddMassTransit(opt =>
builder.Services.AddEnyimMemcached();
builder.Services.AddSingleton<IDistributedLock>();
builder.Services.AddSingleton<IDistributedLock, DistributedLock>();
builder.Services.AddSingleton<IDecryptor, Decryptor>();
var app = builder.Build();
@ -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;