Files
tiku-backend.net/Tiku.Infrastructure/Security/TenantFeatureCacheInvalidator.cs
xiong 603bc24c26
Some checks are pending
ci / release-gate (push) Waiting to run
feat(cache): adopt FusionCache for business caching
2026-08-05 09:30:48 +08:00

26 lines
1.0 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Tiku.Application.Security;
using Tiku.Application.Tenancy;
using Tiku.Infrastructure.Caching;
using ZiggyCreatures.Caching.Fusion;
namespace Tiku.Infrastructure.Security;
internal sealed class TenantFeatureCacheInvalidator(
[FromKeyedServices(BusinessCachingServiceCollectionExtensions.CacheName)]
IFusionCache cache,
ITenantRuntimeCacheInvalidator runtimeCacheInvalidator) : ITenantFeatureCacheInvalidator
{
public async Task InvalidateAsync(Guid tenantId, CancellationToken cancellationToken = default)
{
await runtimeCacheInvalidator.InvalidateAsync(tenantId, cancellationToken);
await Task.WhenAll(
cache.RemoveAsync(
TenantFeatureSnapshotProvider.CacheKey(tenantId, FeatureAccessOperation.Read),
token: cancellationToken).AsTask(),
cache.RemoveAsync(
TenantFeatureSnapshotProvider.CacheKey(tenantId, FeatureAccessOperation.Write),
token: cancellationToken).AsTask());
}
}