public void Run() { try { var activeClients = _store.GetActiveClientSubscriptions(TimeSpan.FromMilliseconds(_interval)); if (activeClients != null) { OperationContext context = OperationContext.CreateWith(OperationContextFieldName.InternalOperation, true); foreach (KeyValuePair <string, IList <string> > pair in activeClients) { foreach (string client in pair.Value) { if (_context.NCacheLog.IsInfoEnabled) { _context.NCacheLog.Info("SubscriptionRefresher", client + " being refreshed for topic " + pair.Key); } _store.TopicOperation(new SubscriptionOperation(pair.Key, Common.Enum.TopicOperationType.RefreshSubscription, new SubscriptionInfo() { ClientId = client }), context); } } } } catch (Exception e) { _context.NCacheLog.Error("SubscriptionReresherTask", e.ToString()); } }
public void Run() { OperationContext context = null; try { var activeClients = _store.GetActiveClientSubscriptions(TimeSpan.FromMilliseconds(_interval)); if (activeClients != null) { context = OperationContext.CreateAndMarkInUse(_context.TransactionalPoolManager, NCModulesConstants.PubSub, OperationContextFieldName.InternalOperation, true); foreach (KeyValuePair <string, IList <string> > pair in activeClients) { foreach (string client in pair.Value) { if (_context.NCacheLog.IsInfoEnabled) { _context.NCacheLog.Info("SubscriptionRefresher", client + " being refreshed for topic " + pair.Key); } _store.TopicOperation(new SubscriptionOperation(pair.Key, Common.Enum.TopicOperationType.RefreshSubscription, new SubscriptionInfo() { ClientId = client }), context); } } } } catch (Exception e) { _context.NCacheLog.Error("SubscriptionReresherTask", e.ToString()); } finally { MiscUtil.ReturnOperationContextToPool(context, _context.TransactionalPoolManager); context?.MarkFree(NCModulesConstants.PubSub); } }