20 lines
666 B
C#
20 lines
666 B
C#
namespace adas_core.Application.Services.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// Contrato genérico para un proveedor de locks por clave.
|
|
/// CacheService usará una implementación local en memoria.
|
|
/// RedisService podría usar una distribuida (si fuera necesario).
|
|
/// </summary>
|
|
public interface ILockProvider
|
|
{
|
|
/// <summary>
|
|
/// Intenta adquirir el lock para una clave dentro del timeout.
|
|
/// </summary>
|
|
Task<bool> AcquireAsync(string key, TimeSpan timeout);
|
|
|
|
/// <summary>
|
|
/// Libera el lock para la clave (idempotente).
|
|
/// </summary>
|
|
Task ReleaseAsync(string key);
|
|
}
|
|
} |