Exemplo n.º 1
0
        /// <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));
                }
            }
        }
Exemplo n.º 2
0
 /// <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 ?? "未知"));
 }