/// <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); } }
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(); } } }
public BufferItemEventArgs(BufferItem item) { this._item = item; }
public abstract bool FilterBuffer(BufferItem item);