Ejemplo n.º 1
0
 public void AddLinkSession(int moduleId, long linkSessionId)
 {
     lock (LinkSessionIds)
     {
         if (false == LinkSessionIds.TryGetValue(moduleId, out var linkSids))
         {
             linkSids = new HashSet <long>();
             LinkSessionIds.Add(moduleId, linkSids);
         }
         if (linkSids.Add(linkSessionId))
         {
             Load.Online += App.Instance.Config.ApproximatelyLinkdCount;
             // 在真正的数据报告回来之前,临时增加统计。仅包括本linkd分配的。
             // 本来Load应该总是由Provider报告的。
             // linkd 的临时增加是为了能快速反应出报告间隔期间的分配。
         }
     }
 }
Ejemplo n.º 2
0
 public void RemoveLinkSession(int moduleId, long linkSessionId)
 {
     lock (LinkSessionIds)
     {
         if (LinkSessionIds.TryGetValue(moduleId, out var linkSids))
         {
             if (linkSids.Remove(linkSessionId))
             {
                 // 下线时Provider会进行统计,这里避免二次计数,
                 // 没有扣除不会有问题,本来Load应该总是由Provider报告的。
                 //--Load.Online;
                 if (linkSids.Count == 0)
                 {
                     LinkSessionIds.Remove(moduleId);
                 }
             }
         }
     }
 }