public HybridCacheClient(ICacheClient distributedCacheClient, IMessageBus messageBus, ILoggerFactory loggerFactory = null) { _logger = loggerFactory.CreateLogger <HybridCacheClient>(); _distributedCache = distributedCacheClient; _messageBus = messageBus; _messageBus.Subscribe <InvalidateCache>(OnRemoteCacheItemExpiredAsync); _localCache = new InMemoryCacheClient(loggerFactory) { MaxItems = 100 }; _localCache.ItemExpired.AddHandler(OnLocalCacheItemExpiredAsync); }
public HybridCacheClient(ICacheClient distributedCacheClient, IMessageBus messageBus, ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger <HybridCacheClient>(); _distributedCache = distributedCacheClient; _messageBus = messageBus; _messageBus.Subscribe <InvalidateCache>(async cache => await OnMessageAsync(cache).AnyContext()); _localCache = new InMemoryCacheClient(loggerFactory) { MaxItems = 100 }; _localCache.ItemExpired.AddHandler(OnItemExpired); }
public HybridCacheClient(ICacheClient distributedCacheClient, IMessageBus messageBus, ILoggerFactory loggerFactory = null) { _logger = loggerFactory?.CreateLogger <HybridCacheClient>() ?? NullLogger <HybridCacheClient> .Instance; _distributedCache = distributedCacheClient; _messageBus = messageBus; _messageBus.SubscribeAsync <InvalidateCache>(OnRemoteCacheItemExpiredAsync).AnyContext().GetAwaiter().GetResult(); _localCache = new InMemoryCacheClient(new InMemoryCacheClientOptions { LoggerFactory = loggerFactory }) { MaxItems = 100 }; _localCache.ItemExpired.AddHandler(OnLocalCacheItemExpiredAsync); }
public HybridCacheClient(ICacheClient distributedCacheClient, IMessageBus messageBus, ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger <HybridCacheClient>(); _distributedCache = distributedCacheClient; _localCache = new InMemoryCacheClient(loggerFactory); _localCache.MaxItems = 100; _messageBus = messageBus; _messageBus.Subscribe <InvalidateCache>(async cache => await OnMessageAsync(cache).AnyContext()); _localCache.ItemExpired.AddHandler(async(sender, args) => { await _messageBus.PublishAsync(new InvalidateCache { CacheId = _cacheId, Keys = new[] { args.Key } }).AnyContext(); _logger.Trace("Item expired event: key={0}", args.Key); }); }