public TItem Set <TItem>(CacheEntryInfo info, TItem value, TimeSpan?timeToLive = null) { _current.CacheService.Set(info, value, _current.Options.TimeToLive); _next?.Set(info, value, _current.Options.TimeToLive); return(value); }
public TItem Set <TItem>(CacheEntryInfo info, TItem value, TimeSpan?timeToLive = null) { Log(info, $"Set:Begin"); var result = _innerCacheService.Set(info, value, timeToLive); Log(info, $"Set:End"); return(result); }
public TItem GetOrCreate <TItem>(CacheEntryInfo info, Func <TItem> factory, TimeSpan?timeToLive = null) { return(_current.CacheService.GetOrCreate( info, _next is null ? factory : () => _next.GetOrCreate(info, factory, timeToLive), timeToLive ?? _current.Options.TimeToLive)); }
public async Task <TItem> GetOrCreateAsync <TItem>(CacheEntryInfo info, Func <Task <TItem> > factory, TimeSpan?timeToLive = null) { return(await _current.CacheService.GetOrCreateAsync( info, _next is null ?factory : async() => await _next.GetOrCreateAsync(info, factory, timeToLive), timeToLive ?? _current.Options.TimeToLive)); }
public void Remove(CacheEntryInfo info) { Log(info, $"Remove:Source:{info.SourceObject.GetType().Name}"); Log(info, $"Remove:Info:{JsonSerializer.Serialize(info)}"); if (info.NoCache) { Log(info, $"GetOrCreateAsync:NoCache"); } Log(info, $"GetOrCreate:Remove"); }
public TItem Set <TItem>(CacheEntryInfo info, TItem value, TimeSpan?timeToLive = null) { Log(info, $"Set:Source:{info.SourceObject.GetType().Name}"); Log(info, $"Set:Info:{JsonSerializer.Serialize(info)}"); if (info.NoCache) { Log(info, $"GetOrCreateAsync:NoCache"); } Log(info, $"GetOrCreate:Set"); return(value); }
public TItem GetOrCreate <TItem>(CacheEntryInfo info, Func <TItem> factory, TimeSpan?timeToLive = null) { Log(info, $"GetOrCreate:Source:{info.SourceObject.GetType().Name}"); Log(info, $"GetOrCreate:Info:{JsonSerializer.Serialize(info)}"); if (info.NoCache) { Log(info, $"GetOrCreateAsync:NoCache"); } var item = factory.Invoke(); Log(info, $"GetOrCreate:End"); return(item); }
public TItem GetOrCreate <TItem>(CacheEntryInfo info, Func <TItem> factory, TimeSpan?timeToLive = null) { var cacheHit = true; Log(info, $"GetOrCreate:Begin"); var result = _innerCacheService.GetOrCreate(info, () => { cacheHit = false; Log(info, $"GetOrCreate:FactoryInvoke"); return(factory.Invoke()); }, timeToLive); if (cacheHit) { Log(info, $"GetOrCreate:>>HIT<<"); } Log(info, $"GetOrCreate:End"); return(result); }
private void Log(CacheEntryInfo info, string logMessage) { _logger.LogDebug($"{info.Key}:{_cacheServiceName}:{logMessage}"); }
public async Task <TItem> GetOrCreateAsync <TItem>(CacheEntryInfo info, Func <Task <TItem> > factory, TimeSpan?timeToLive = null) { if (info.NoCache) { return(default);
public void Remove(CacheEntryInfo info) { Log(info, $"Remove:Begin"); _innerCacheService.Remove(info); Log(info, $"Remove:End"); }
public void Remove(CacheEntryInfo info) { Log(info, $"Remove:EndOfPipeline"); }
public TItem Set <TItem>(CacheEntryInfo info, TItem value, TimeSpan?timeToLive = null) { Log(info, $"Set:EndOfPipeline"); return(value); }
public TItem GetOrCreate <TItem>(CacheEntryInfo info, Func <TItem> factory, TimeSpan?timeToLive = null) { Log(info, $"GetOrCreate:>>MISS<<"); Log(info, $"GetOrCreate:EndOfPipeline"); return(factory.Invoke()); }
public async Task <TItem> GetOrCreateAsync <TItem>(CacheEntryInfo info, Func <Task <TItem> > factory, TimeSpan?timeToLive = null) { Log(info, $"GetOrCreateAsync:>>CacheMiss<<"); Log(info, $"GetOrCreateAsync:EndOfPipeline"); return(await factory.Invoke()); }
public void Remove(CacheEntryInfo info) { _current.CacheService.Remove(info); _next?.Remove(info); }