mirror of
https://github.com/azaion/admin.git
synced 2026-04-22 22:06:33 +00:00
d320d6dd59
Made-with: Cursor
1.3 KiB
1.3 KiB
Module: Azaion.Services.Cache
Purpose
In-memory caching abstraction using LazyCache, providing get-or-add and invalidation operations.
Public Interface
ICache
| Method | Signature | Description |
|---|---|---|
GetFromCacheAsync<T> |
Task<T> GetFromCacheAsync<T>(string key, Func<Task<T>> fetchFunc, TimeSpan? expiration = null) |
Returns cached value or fetches and caches it |
Invalidate |
void Invalidate(string key) |
Removes a key from the cache |
MemoryCache (implementation)
Default expiration: 4 hours (TimeSpan.FromHours(4)).
Internal Logic
Wraps LazyCache.CachingService. GetFromCacheAsync uses GetOrAddAsync with absolute expiration relative to now. Invalidate calls Remove.
Dependencies
- LazyCache (
IAppCache,CachingService)
Consumers
UserService.GetByEmail— caches user lookups byUser.GetCacheKey(email)UserService.UpdateHardware,UserService.UpdateQueueOffsets,UserService.CheckHardwareHash— invalidate cache after writes- Registered as
Scopedin DI (Program.cs):AddScoped<ICache, MemoryCache>
Data Models
None.
Configuration
None — default 4-hour expiration is hardcoded.
External Integrations
None.
Security
None.
Tests
MemoryCache is instantiated directly in UserServiceTest.