Example #1
0
        public void Publish(string cacheName, string key, CacheItemActionTypes action)
        {
            var message       = new CacheItemNotification(sender, cacheName, key, action);
            var messageToSend = convert.ToRedis(message);

            GetSubClient(cacheName, null).Subscriber.Publish(cacheName, messageToSend, CommandFlags.None);
        }
Example #2
0
 public CacheItemNotification(string sender, string cacheName, string key, CacheItemActionTypes action)
 {
     this.Key       = key;
     this.CacheName = cacheName;
     this.Action    = action;
     this.Sender    = sender;
 }
Example #3
0
        public void Publish(string key, CacheItemActionTypes action)
        {
            var message       = new CacheItemNotification(sender, cacheName, key, action);
            var messageToSend = convert.ToRedis(message);

            // publish via redis
            client.Subscriber.Publish(cacheName, messageToSend, CommandFlags.FireAndForget);
        }
Example #4
0
        public async Task PublishAsync(string cacheName, string key, CacheItemActionTypes action)
        {
            var message       = new CacheItemNotification(sender, cacheName, key, action);
            var messageToSend = convert.ToRedis(message);

            await GetSubClient(cacheName, null, null).Subscriber
            .PublishAsync(cacheName, messageToSend, CommandFlags.None)
            .ConfigureAwait(false);
        }
Example #5
0
        public static Task NotifySyncProviderAsync(this ICache cache, string key, CacheItemActionTypes action)
        {
            var notifier = CacheManager.GetAssociatedNotifier(cache);

            if (notifier != null)
            {
                return(notifier.PublishAsync(cache.Name, key, action));
            }

            return(Task.CompletedTask);
        }
Example #6
0
 public bool TryPublish(string cacheName, string key, CacheItemActionTypes action)
 {
     try
     {
         Publish(cacheName, key, action);
         return(true);
     }
     catch (Exception ex)
     {
         log.Warn(ex, $"Failed to publish {action} for {cacheName}.{key}");
         return(false);
     }
 }
Example #7
0
 public bool TryPublish(string cacheName, string key, CacheItemActionTypes action)
 {
     try
     {
         var message       = new CacheItemNotification(sender, cacheName, key, action);
         var messageToSend = convert.ToRedis(message);
         var redisClient   = GetSubClient(cacheName, null, null);
         if (redisClient.IsConnected)
         {
             redisClient.Subscriber.Publish(cacheName, messageToSend, CommandFlags.None);
             return(true);
         }
         return(false);
     }
     catch (Exception ex)
     {
         log.Warn(ex, $"Failed to publish {action} for {cacheName}.{key}");
         return(false);
     }
 }
Example #8
0
 public void Publish(string cacheName, string key, CacheItemActionTypes action)
 {
 }
Example #9
0
 public bool TryPublish(string cacheName, string key, CacheItemActionTypes action)
 {
     return(true);
 }
Example #10
0
        public static Task <bool> TryNotifySyncProviderAsync(this ICache cache, string key, CacheItemActionTypes action)
        {
            var notifier = CacheManager.GetAssociatedNotifier(cache);

            if (notifier != null)
            {
                return(notifier.TryPublishAsync(cache.Name, key, action));
            }

            return(Task.FromResult(false));
        }
Example #11
0
        public static bool TryNotifySyncProvider(this ICache cache, string key, CacheItemActionTypes action)
        {
            var notifier = CacheManager.GetAssociatedNotifier(cache);

            return(notifier?.TryPublish(cache.Name, key, action) ?? false);
        }
Example #12
0
        public static void NotifySyncProvider(this ICache cache, string key, CacheItemActionTypes action)
        {
            var notifier = CacheManager.GetAssociatedNotifier(cache);

            notifier?.Publish(cache.Name, key, action);
        }
Example #13
0
 public Task <bool> TryPublishAsync(string cacheName, string key, CacheItemActionTypes action)
 {
     return(Task.FromResult(true));
 }
Example #14
0
 public async Task PublishAsync(string cacheName, string key, CacheItemActionTypes action)
 {
 }