Table of Contents

Class LockManagerService

Namespace
adas_core.Application.Services.Caching
Assembly
adas-core.Application.dll

Servicio que ejecuta acciones dentro de una sección crítica controlada por lock. CacheService lo usará para evitar condiciones de carrera en GetOrSet. Funciona igual para locks locales o distribuidos.

public class LockManagerService
Inheritance
LockManagerService
Inherited Members
Extension Methods

Constructors

LockManagerService(ILogger<LockManagerService>, ILockProvider)

Servicio que ejecuta acciones dentro de una sección crítica controlada por lock. CacheService lo usará para evitar condiciones de carrera en GetOrSet. Funciona igual para locks locales o distribuidos.

public LockManagerService(ILogger<LockManagerService> logger, ILockProvider provider)

Parameters

logger ILogger<LockManagerService>
provider ILockProvider

Methods

WithLockAsync(string, TimeSpan, Func<Task>, CancellationToken)

Version Task (sin valor).

public Task WithLockAsync(string key, TimeSpan timeout, Func<Task> action, CancellationToken cancellationToken = default)

Parameters

key string
timeout TimeSpan
action Func<Task>
cancellationToken CancellationToken

Returns

Task

WithLockAsync<T>(string, TimeSpan, Func<Task<T>>, CancellationToken)

Ejecuta una función que devuelve un valor bajo un lock por clave.

public Task<T> WithLockAsync<T>(string key, TimeSpan timeout, Func<Task<T>> action, CancellationToken cancellationToken = default)

Parameters

key string
timeout TimeSpan
action Func<Task<T>>
cancellationToken CancellationToken

Returns

Task<T>

Type Parameters

T