Пример #1
0
        /// <summary>
        /// 监听消息
        /// </summary>
        protected virtual void Receive()
        {
            BufferItem item = null;

            try
            {
                //从监听地址中获取一个消息
                item = sourceArrays.Take();

                //触发消息接收事件
                OnTransportMessageReceived(new BufferItemEventArgs(item));
            }
            catch (Exception ex)
            {
                if (!IgnoreException(ex))
                {
                    OnServiceException(new InkeyException(InkeyErrorCodes.CommonFailure, "数据缓冲服务监听消息错误", ex));
                }
                System.Threading.Thread.Sleep(1000);
            }
        }
Пример #2
0
 public void Process(BufferItem item)
 {
     if (!FilterBuffer(item))
     {
         return;
     }
     if (noticeProcessCount == 1)
     {
         BufferProcess(new List <BufferItem> {
             item
         });
     }
     else
     {
         sourceArrays.Add(item);
         if (sourceArrays.Count >= NoticeProcessCount)
         {
             lastProcessTime = DateTime.Now;
             BatchProcessMessage();
         }
     }
 }
Пример #3
0
 public BufferItemEventArgs(BufferItem item)
 {
     this._item = item;
 }
Пример #4
0
 public abstract bool FilterBuffer(BufferItem item);