示例#1
0
 /// <summary>
 /// 返回null表示发生了网络错误,或者应用服务器已经关闭。
 /// </summary>
 /// <param name="gkey"></param>
 /// <param name="state"></param>
 /// <returns></returns>
 public Reduce ReduceWaitLater(GlobalTableKey gkey, int state)
 {
     try
     {
         lock (this)
         {
             if (global::Zeze.Util.Time.NowUnixMillis - LastErrorTime < ForbitPeriod)
             {
                 return(null);
             }
         }
         AsyncSocket peer = GlobalCacheManager.Instance.Server.GetSocket(SessionId);
         if (null != peer)
         {
             Reduce reduce = new Reduce(gkey, state);
             reduce.SendForWait(peer, 10000);
             return(reduce);
         }
     }
     catch (Exception ex)
     {
         // 这里的异常只应该是网络发送异常。
         logger.Error(ex, "ReduceWaitLater Exception {0}", gkey);
     }
     SetError();
     return(null);
 }