Beispiel #1
0
 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);
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
     });
 }