コード例 #1
0
 /// <summary>
 /// 执行工作
 /// </summary>
 /// <param name="socket"></param>
 /// <returns>返回状态,其中-1会导致重连</returns>
 protected sealed override int DoWork(SubscriberSocket socket)
 {
     byte[] buffer;
     Debug.WriteLine(this.ZmqAddress);
     if (!socket.TryReceiveFrameBytes(timeOut, out buffer))
     {
         //Thread.SpinWait(1);
         return(0);
     }
     try
     {
         var reader = new CommandReader(buffer);
         reader.ReadCommandFromBuffer();
         var cmdMsg = reader.Command;
         try
         {
             var old = RpcEnvironment.SyncCacheCommand(cmdMsg);
             old?.OnRequestStateChanged(cmdMsg);
         }
         catch (Exception ex)
         {
             Trace.WriteLine(ex, GetType().Name + "MessageNotifyTask");
         }
     }
     catch (Exception ex)
     {
         Trace.WriteLine(ex, GetType().Name + "DoWork");
         return(-1);
     }
     return(0);
 }