namespace Fengling.Member.Application.Services;
///
/// 分布式锁获取结果
///
public class LockAcquisitionResult
{
public bool Success { get; set; }
public string? LockValue { get; set; }
public string? ErrorMessage { get; set; }
public static LockAcquisitionResult Succeeded(string lockValue) => new()
{
Success = true,
LockValue = lockValue
};
public static LockAcquisitionResult Failed(string errorMessage) => new()
{
Success = false,
ErrorMessage = errorMessage
};
}
///
/// 分布式锁接口
///
public interface ICodeDistributedLock
{
///
/// 获取分布式锁
///
/// 码ID
/// 锁过期时间,默认10秒
/// 获取结果
Task AcquireAsync(string codeId, TimeSpan? ttl = null);
///
/// 释放分布式锁
///
/// 码ID
/// 锁值
Task ReleaseAsync(string codeId, string lockValue);
}