/// <summary> /// 数据接收处理 /// </summary> /// <param name="entity">数据实体</param> protected virtual void OnReceive(ICommunicationEntity entity) { if (ReceiveCount == long.MaxValue) { WriteInfo(string.Format("数据接收计数器达到最大值,计数器清空")); ReceiveCount = 0; } System.Threading.Interlocked.Increment(ref ReceiveCount); if (!LogicFactory.SubscribeDic.ContainsKey(entity.FindKey)) { return; } foreach (var logic in LogicFactory.SubscribeDic[entity.FindKey]) { try { var logicEntity = OnConvertToLogic(entity); Dowork(logic, entity, logicEntity); } catch (Exception ex) { FrameworkLogWrite.WriteError(ex, string.Format("逻辑处理队列:{0},运行任务时发生未捕获异常", logic.FindKey)); } } }
/// <summary> /// 通信异常消息处理 /// </summary> /// <param name="queue">消息队列</param> /// <param name="ex">异常</param> /// <param name="append">附加信息</param> protected virtual void OnCommunicationException(ICommunicationQueue queue, Exception ex, string append) { FrameworkLogWrite.WriteError(ex, string.Format("通信队列:{0},异常,信息 :{1}", queue.FindKey, append ?? "未知")); }