Ejemplo n.º 1
0
        /// <summary>
        /// 开始写入
        /// </summary>
        /// <param name="_messageId"></param>
        /// <returns></returns>
        public IMessageWriter WriteBegin(int _messageId)
        {
            ResetWriter();
            binaryWrite.Write(MESSAGE_HEAD_TAG.SwapInt16());
            binaryWrite.Write(DEFAULT_SIZE.SwapInt16());
            binaryWrite.Write(_messageId.SwapInt32());
            IsSendLog = LoggerQ.IsLogByMessageCode(_messageId);

            if (true == IsSendLog)
            {
                // 添加消息号
                AddSpecifyStringLogCache("SEND = " + _messageId + "   TIME : " +
                                         string.Format("[{0}]", DateTime.Now.TimeOfDay));
                LogCache.Add("—————————————————————");
            }

            return(this);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 资源下载失败的处理
        /// 要向资源错误原因中添加一条错误记录
        /// </summary>
        /// <param name="_item"></param>
        /// <param name="_errorCode"></param>
        private void DownloadFailExecute(HKDownloadTaskItem _item, int _errorCode)
        {
            if (null == errorInfoCache)
            {
                errorInfoCache = StringCacheFactory.GetFree();
                errorInfoCache.SetSplit("\n");
            }

            if (_item.CurrentSurplusRetryCount > 0)
            {
                RetryExecute(_item);
                errorInfoCache.Add(_item.Url).Add(" 下载失败,启动第").Add(_item.RetryCount - _item.CurrentSurplusRetryCount)
                .Add("次重试");
            }
            else
            {
                errorInfoCache.Add(_item.Url).Add(" 下载失败 = ").Add("_").Add(_errorCode);
                // 使用完后,就回收到内存池中
                HKDownloadTaskItem.downloadItemCache.Recover(_item);
            }

            // 检测当前剩余下载对象,并继续下载
            CheckQueueComplete();
        }